PHP 中的私有

WBOY
发布: 2024-08-29 13:08:07
原创
879 人浏览过

关键字是在程序中用作保留的单词,并赋予它们特殊的含义。它们可以是命令或参数。与所有其他编程语言一样,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:

PHP 中的私有

输出 2:在第 23 行评论后。

PHP 中的私有

输出 3:在第 24 行评论后。

PHP 中的私有

输出 4:对第 46、47 和 40 行进行评论后。

PHP 中的私有

对上面代码的解释:当你完全运行这段代码时,你一定会在一些行号处遇到致命错误,比如第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:

PHP 中的私有

输出 2: 注释第 32、33 和 36 行后。

PHP 中的私有

上述代码说明:在上面的示例中,$first_name 和 $last_name 被声明为类 NameExample 的私有变量,因此不能使用类对象直接调用它们。因此,当我们第一次尝试运行代码时,我们会收到错误“未定义的变量:第 32 行 /workspace/NameExample.php 中的first_name”,第 33 行也是如此。当我们评论这两行并再次运行代码时我们收到错误“未捕获错误:在 /workspace/NameExample.php:36 中的 null 上调用成员函数 name()”。

这是因为我们已将函数 fName 声明为私有,并且它正在尝试访问该函数。当第 36 行也被注释并从方法名称显示时,代码运行顺利,因为它是公共方法。

在 PHP 中使用 Private 的优点

以下是在 PHP 中使用 Private 的优点:

  1. 私有变量仍然可以通过使用“getters”和“setters”来访问,这使编码人员可以更好地控制访问数据。
  2. 私有反过来意味着封装,它将变量从一个类分离到另一个类,从而保护对类内部所做的更改。
  3. 私有变量的行为被限制在特定的类内,也避免了混乱。
  4. 私有变量可以轻松地重新实现,而不会有在任何地方破坏代码的风险。

PHP 私人规则和规定

以下是 PHP 中 Private 需要遵循的规则和规定:

  1. 对于任何变量成员或方法,必须始终声明其范围,无论它属于公共、受保护还是私有。
  2. 按照方法的顺序,应该遵循以下顺序:public,>受保护>私人
  3. 私有变量无法从通过从声明它们的主类扩展来声明的子类中访问。但是,如果在子类中再次声明相同的私有属性,则可以访问它,但不建议这样做。
  4. 因此,在类中声明的私有方法只能在该类内部调用。

结论

私有是一种限制类的变量、方法或属性的可访问性的方法。它们只能在声明它们的类中访问,而不能从其扩展的任何子类中访问。父类中的任何受保护属性都可以被子类覆盖并公开,但不能设为私有。

以上是PHP 中的私有的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
php
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!