关键字是在程序中用作保留的单词,并赋予它们特殊的含义。它们可以是命令或参数。与所有其他编程语言一样,PHP 也有一组称为关键字的特殊单词,它们不能用作其他目的的变量名称。它们也被称为保留名称。
广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
私有关键字,顾名思义,是只能从定义它的类中访问的关键字。所有关键字默认都属于公共类别,除非它们被指定为私有或受保护。私有关键字通过为整个代码中的关键字提供最少的可见性来帮助实现安全目的。当只有一个类调用此关键字时,折射也更容易。
除了私有关键字之外,还可以有私有方法。在面向对象编程中,方法是与任何类关联的过程集。对于私有方法,只能在属于同一类或其模块的方法中调用它们。
还有可以声明的私有常量和属性。在这些情况下,可见性仅限于它们的类之间,而不是实例之间。如果两个对象属于同一类型,则一个对象可以调用另一个对象的私有方法。
语法:
任何变量、属性或方法都可以通过在其前面加上“private”关键字来声明为私有。
class MyClass() { private variable_name; private Method_name(); private $priv = 'Private property'; }
让我们通过以下示例来了解 PHP 中私有财产的工作原理:
代码:
<?php /** * Definition of PHPExample */ class PHPExample { public $public = 'Public property'; protected $protected = 'Protected property'; private $private = 'Private property'; function displayValue() { echo $this->public; echo "\n"; echo $this->protected; echo "\n"; echo $this->private; echo "\n"; } } $val = new PHPExample(); echo $val->public; // Public will work without any error echo "\n"; echo $val->protected; // Uncaught Error: Cannot access protected property PHPExample::$protected in /workspace/Main.php:21 echo $val->private; // Uncaught Error: Cannot access private property PHPExample::$private in /workspace/Main.php:22 $val->displayValue(); // Displays all 3 Public, Protected and Private properties /** * Definition of PHPExample2 */ class PHPExample2 extends PHPExample { // It supports redeclaration of public and protected properties and not private public $public = 'Public2 property'; protected $protected = 'Protected2 property'; function displayValue() { echo $this->public; echo "\n"; echo $this->protected; echo "\n"; echo $this->private; //Undefined property: PHPExample2::$private in /workspace/Main.php on line 39 } } $val2 = new PHPExample2(); echo $val2->public; // Public will work without error echo "\n"; echo $val2->protected; // Fatal Error echo $val2->private; // Undefined property: PHPExample2::$private in /workspace/Main.php on line 46 $val2->displayValue(); // Shows Public2, Protected2, Undefined ?>
输出 1:
输出 2:在第 23 行评论后。
输出 3:在第 24 行评论后。
输出 4:对第 46、47 和 40 行进行评论后。
对上面代码的解释:当你完全运行这段代码时,你一定会在一些行号处遇到致命错误,比如第25,26,45,52,53行。我们首先在主类 PHPExample 中声明所有 3 个属性 public、private 和 protected,以显示它们各自的单词。内联 25,我们尝试访问 PHPExample 类的所有 3 个属性。由于私有和受保护的示例无法在其类之外访问,因此我们在输出中收到如图所示的致命错误,并且仅显示公共属性。
在代码的后半部分,我们声明了另一个类 PHPExample2,我们在其中重新声明受保护和公共属性的显示值。私人不允许这样做,然后我们执行与上半场相同的动作。由于我们试图调用此处未声明的私有属性,因此我们收到未定义属性错误。
让我们通过以下示例来了解 PHP 中私有方法和关键字的工作原理:
代码:
<?php class NameExample { // Declaring first name as private value private $first_name; // Declaring last name as private value private $last_name; public $public = 'Displaying from public method'; private $private ='Displaying from private method'; // private function for setting the value for first_name private function fName($first_name) { $this->$first_name = $first_name; echo $this -> private; } // public function for setting the value for last_name public function lName($last_name) { $this->$last_name = $last_name; echo $this -> public; } // public function to display full name value public function dispName() { echo "My name is: " . $this->$first_name . " " . $this->$last_name; } } // Creating a new object named $arun of the class $arun = new NameExample(); // trying to access private class variables $arun->$first_name = "Arun"; // invalid $arun->$last_name = "Sharma"; // invalid // calling the public function to set $first_name and $last_name $john->fName("John"); $arun->lName("Wick"); // $arun-> dispName(); ?>
输出 1:
输出 2: 注释第 32、33 和 36 行后。
上述代码说明:在上面的示例中,$first_name 和 $last_name 被声明为类 NameExample 的私有变量,因此不能使用类对象直接调用它们。因此,当我们第一次尝试运行代码时,我们会收到错误“未定义的变量:第 32 行 /workspace/NameExample.php 中的first_name”,第 33 行也是如此。当我们评论这两行并再次运行代码时我们收到错误“未捕获错误:在 /workspace/NameExample.php:36 中的 null 上调用成员函数 name()”。
这是因为我们已将函数 fName 声明为私有,并且它正在尝试访问该函数。当第 36 行也被注释并从方法名称显示时,代码运行顺利,因为它是公共方法。
以下是在 PHP 中使用 Private 的优点:
以下是 PHP 中 Private 需要遵循的规则和规定:
私有是一种限制类的变量、方法或属性的可访问性的方法。它们只能在声明它们的类中访问,而不能从其扩展的任何子类中访问。父类中的任何受保护属性都可以被子类覆盖并公开,但不能设为私有。
以上是PHP 中的私有的详细内容。更多信息请关注PHP中文网其他相关文章!