本文章来详细介绍PHP 类的变量与成员,及其继承、访问与重写要注意问题,有需要的朋友可参考参考。
基于 PHP5.3
PHP 的类及其实例:
代码如下 | 复制代码 |
public $prop = 123; } $obj = new Myclass(); |
代码如下 | 复制代码 |
public $prop = 123; } $obj = new Myclass(); |
类的成员属性(属性的称呼相对于“方法”而言)包括类常量和类变量,其中类常量在定义时不可为空,类的属性在定义时如果被赋值,只能使用标量和数组,并且不能是表达式,因为类属性在编译期被初始化,PHP 在编译期不执行表达式。
1、成员的访问控制:
public:可以继承,可以在类的方法之外被访问 , 如 $obj->prop;
protected:可以继承,不可以在类的方法之外被访问
private:不可以继承,不可以在类的方法之外访问
代码如下 | 复制代码 |
class Singleton { } public static function getInstance(){ return self::$instance; public function __clone(){ //pretend clone oprationg //new Singleton(); // Error
|
PHP 4 使用 var 来声明类的属性,在PHP5之后不再使用,PHP5.3之前使用被警告,PHP5.3之后可以用在 public 之前或单独使用作为 public 的别名。
这三个访问控制关键字也可以修饰构造函数,当 private 和 protected 修饰类的构造函数时,你只能通过一个 publice static 的静态方法来调用构造函数以实例化对象,因为够在函数无法在类之外被访问了,比如,单例类的实现:
代码如下 | 复制代码 |
class Myclass{ public $prop = 123; final public static function methodA(){//不可继承的,公开的静态方法 return 'this is a final method'; } } |
代码如下 | 复制代码 |
<script>ec(2);</script>class Singleton { private static $instance=null; public $k = 88; private function __construct(){ } public static function getInstance(){ if(self::$instance==null){ self::$instance = new self(); } return self::$instance; } public function __clone(){ //pretend clone oprationg throw('Singleton class can not be cloned'); return self::getInstance(); } } //new Singleton(); // Error $in = Singleton::getInstance(); |
代码如下 | 复制代码 |
class Myclass{ public $prop = 123; final public static function methodA(){//不可继承的,公开的静态方法 return 'this is a final method'; } } |
3、抽象类和抽象方法:abstract 仅用于 类和方法,抽象类不能直接用于实例化对象只能用于产生子类
代码如下 | 复制代码 | ||||
public $prop = 123;
<script>ec(2);</script> abstract public function methodA(); //抽象方法没有实现函数体
}
|

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。