background image

PHP 进阶:php 魔术方法与魔术变量、内置方法与内置变

本文为大家介绍了 php 魔术方法与魔术变量、内置方法与内置变量,供大家参考。

php 内置变量了:DIRECTORY_SEPARATOR

DIRECTORY_SEPARATOR 是一个返回跟操作系统相关的路径分隔符的 php 内置命令,在
windows 上返回/,而在 linux 或者类 unix 上反悔/,就是这么个区别,通常在定义包含文
件路径或者上传保存目录的时候会用到。
PHP 

 

把所有以 __ (两个下划线)开头的类方法当成魔术方法。所以你定义自己的类方法

 

时,不要以 __ 为前缀。

 

、 __construct()

当实例化一个对象的时候,这个对象的构造方法将首先被调用;

 

我们知道 php5 对象模型和类名相同的函数是类的构造函数,那么如果同时定义构造函数

 

和 __construc() 

 

方法的话, php5 

 

会默认调用 __contruct() 

 

而不会调用同类名函数,所以 _

_contruct() 作为类的默认构造函数;

 

、 __destruct()

析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。

 

、 __get(string $name)

当试图读取一个并不存在的属性时被调用;如果试图读取一个对象并不存在的属性的时

 

候, php 

 

就会给出错误的信息。如果在类里添加 __get 方法,并且我们可以用这个函数实

 

现类似 java 中的反射的各种操作。

 

、 __set(string $name, mixed $value)

给未定义的变量赋值时将被调用

 

、 __call(string $name, array $arguments)

 

当调用一个不可访问方法(如未定义,或者不可见)时, __call() 会被调用。
__callStatic( string $name, array $arguments )

 

当在静态方法中调用一个不可访问方法(如未定义,或者不可见)时, __callStatic() 会
被调用。

 

、 __toString()