关键字是在程序中用作保留的单词,并赋予它们特殊的含义。它们可以是命令或参数。与所有其他编程语言一样,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 的优点:
- 私有变量仍然可以通过使用“getters”和“setters”来访问,这使编码人员可以更好地控制访问数据。
- 私有反过来意味着封装,它将变量从一个类分离到另一个类,从而保护对类内部所做的更改。
- 私有变量的行为被限制在特定的类内,也避免了混乱。
- 私有变量可以轻松地重新实现,而不会有在任何地方破坏代码的风险。
PHP 私人规则和规定
以下是 PHP 中 Private 需要遵循的规则和规定:
- 对于任何变量成员或方法,必须始终声明其范围,无论它属于公共、受保护还是私有。
- 按照方法的顺序,应该遵循以下顺序:public,>受保护>私人
- 私有变量无法从通过从声明它们的主类扩展来声明的子类中访问。但是,如果在子类中再次声明相同的私有属性,则可以访问它,但不建议这样做。
- 因此,在类中声明的私有方法只能在该类内部调用。
结论
私有是一种限制类的变量、方法或属性的可访问性的方法。它们只能在声明它们的类中访问,而不能从其扩展的任何子类中访问。父类中的任何受保护属性都可以被子类覆盖并公开,但不能设为私有。
以上是PHP 中的私有的详细内容。更多信息请关注PHP中文网其他相关文章!

DependencyInjection(DI)inPHPenhancescodeflexibilityandtestabilitybydecouplingdependencycreationfromusage.ToimplementDIeffectively:1)UseDIcontainersjudiciouslytoavoidover-engineering.2)Avoidconstructoroverloadbylimitingdependenciestothreeorfour.3)Adhe

到Improveyourphpwebsite的实力,UsEthestertate:1)emplastOpCodeCachingWithOpcachetCachetOspeedUpScriptInterpretation.2)优化的atabasequesquesquesquelies berselectingOnlynlynnellynnessaryfields.3)usecachingsystemssslikeremememememcachedisemcachedtoredtoredtoredsatabaseloadch.4)

是的,itispossibletosendMassemailswithp.1)uselibrarieslikeLikePhpMailerorSwiftMailerForeffitedEmailSending.2)enasledeLaysBetemailStoavoidSpamflagssspamflags.3)sylectynamicContentToimpovereveragement.4)

DependencyInjection(DI)inPHPisadesignpatternthatachievesInversionofControl(IoC)byallowingdependenciestobeinjectedintoclasses,enhancingmodularity,testability,andflexibility.DIdecouplesclassesfromspecificimplementations,makingcodemoremanageableandadapt

使用PHP发送电子邮件的最佳方法包括:1.使用PHP的mail()函数进行基本发送;2.使用PHPMailer库发送更复杂的HTML邮件;3.使用SendGrid等事务性邮件服务提高可靠性和分析能力。通过这些方法,可以确保邮件不仅到达收件箱,还能吸引收件人。

计算PHP多维数组的元素总数可以使用递归或迭代方法。1.递归方法通过遍历数组并递归处理嵌套数组来计数。2.迭代方法使用栈来模拟递归,避免深度问题。3.array_walk_recursive函数也能实现,但需手动计数。

在PHP中,do-while循环的特点是保证循环体至少执行一次,然后再根据条件决定是否继续循环。1)它在条件检查之前执行循环体,适合需要确保操作至少执行一次的场景,如用户输入验证和菜单系统。2)然而,do-while循环的语法可能导致新手困惑,且可能增加不必要的性能开销。

在PHP中高效地哈希字符串可以使用以下方法:1.使用md5函数进行快速哈希,但不适合密码存储。2.使用sha256函数提高安全性。3.使用password_hash函数处理密码,提供最高安全性和便捷性。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用

Dreamweaver CS6
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境