如何在PHP中使用公共,私人关键字?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> PHP中常用的关键字强>
在PHP中包含了很多对函数和类进行限制的关键字,常用的通常有抽象,最终,接口,公共、保护,私人的,静等等,下面我们就将对这些进行分析整理各个的用法。
<强>变量与方法的关键字公共,私人的,受保护的强>
公共的权限最大,既可以让子类使用,也可以支持实例化之后的调用,
保护表示的是受保护的,访问的权限是只有在子类和本类中才可以被访问到
私人表示的是私有,只能够是在当前的类中可以被访问到
& lt; PHP ?///* * *,Define MyClass */class MyClass {=,public public 美元;& # 39;公共# 39;;=,protected protected 美元;& # 39;保护# 39;;=,private private 美元;& # 39;私人# 39;; ,public function  printHello () ,{ ,echo 这→美元公开; ,echo 这比美元;保护; ,echo 这→美元私人; ,} ,protected function  pro_test () { ,var_dump (1); ,} } $ obj =, new MyClass (); echo obj→美元,,//,这行能被正常执行//echo obj→美元保护;,//,这行会产生一个致命错误//echo obj→美元私人;,//,这行也会产生一个致命错误 美元obj→printHello();,//,输出,公众Protected 和私人 美元obj→pro_test();//直接报的错 ?在
<强>变量与方法的关键字静态强>
静态的作用就是能够实现值或者方法在类中不需实例化的情况下调用,同时静态修饰的变量具有与值存储的功能,例如我们不使用静态运行的结果如下:
& lt; php ? function 测试(){ ,$ var=1; 干净自己的,echo $ var & lt/br>“; ,$ var + +; } 测试();//1 测试();//1 测试();//1 祝辞;
如果我们给变量加上静态那么就会变成这样
& lt; php ? function 测试(){ ,static $ var=1; 干净自己的,echo $ var & lt/br>“; ,$ var + +; } 测试();//1 测试();//2 测试();//3 祝辞;
这里可能不能够体会到PHP这样做的好处,那么我们就先来假设一下读者也熟悉JS,在JS中是没有静态这个关键字的,所以如果我们要来实现一个具有能够保存每一次程序运算结果作为下一次运算的依据的一个程序我们需要这样来写。
var 如果=0; ,function 测试(){ ,如果+ +; ,document.writeln(如果); ,} ,测试(); ,测试(); 之前,测试();>这样就会把如果泄漏到全局变量中,如果生成的变量比较多,就会导致内存泄露(内存泄漏所指代的就是变量占用过多的内存空间没有别释放)
& lt; script> ,var 如果=0; ,function 测试(){ ,如果+ +; ,document.writeln(如果); ,} ,测试();//1 ,测试();//2 ,测试();//,3, & lt;/script>所以相比于在没有定义静态的语言中,它具有一个优势是保持变量,不泄露内存,也不容易导致全局变量被误用(因为作用域不在全局)
$年龄=0; $ + +岁; function test1 (), {=,static age 美元;100; 美元,年龄+ +; ,echo 年龄美元霸主地位;& lt;/br>“; } function test2 (), {=,static age 美元;1000; 美元,年龄+ +; ,echo 年龄美元霸主地位;& lt;/br>“; } test1 ();//, 101 test2 ();,//, 1001<强>类与方法的关键字最后强>
最后只能够用来修饰类与函数,使用了最后之后就不能够被继承,例如如下的代码就会直接报错
class BaseClass {=,public public 美元;& # 39;公共# 39;; ,function 测试(),{ ,echo “BaseClass:测试(),称为\ n"; ,} ,final public function  moreTesting (), { ,echo “BaseClass: moreTesting(),称为\ n"; ,} } class ChildClass  extends BaseClass  { ,public function  moreTesting (), { ,echo “ChildClass: moreTesting(),称为\ n"; ,} }<>强特殊关键字接口,抽象的强>
界面的意义在于规范编程的风格,设想一下就是如果是实现了一个接口那么我们在使用这个接口类的时候就必须要实现里面的方法,起到了统一命名的作用。
如何在PHP中使用公共,私人关键字