1、__construct()
实例化对象时被挪用, 当__construct和以类名为函数名的函数同时存在时,__construct将被挪用,另一个不被挪用。
2、__destruct()
当删除一个对象或对象操纵停止时被挪用
3、__call()
对象挪用某个要领, 若要领存在,则直接挪用;若不存在,则会去挪用__call函数
4、__get()
读取一个对象的属性时,若属性存在,则直接返回属性值; 若不存在,则会挪用__get函数。
5、__set()
设置一个对象的属性时, 若属性存在,则直接赋值; 若不存在,则会挪用__set函数。
6、__toString()
打印一个对象的时刻被挪用。如echo $obj;或print $obj;
7、__clone()
克隆对象时被挪用。如:$t=new Test();$t1=clone $t;
8、__sleep()
serialize之前被挪用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
9、__wakeup()
unserialize时被挪用,做些对象的初始化事情。
10、__isset()
检测一个对象的属性是不是存在时被挪用。如:isset($c->name)。
11、__unset()
unset一个对象的属性时被挪用。如:unset($c->name)。
12、__set_state()
挪用var_export时,被挪用。用__set_state的返回值做为var_export的返回值。
13、__autoload()
实例化一个对象时,假如对应的类不存在,则该要领被挪用。
举例说明:
1、__get()
当试图读取一个并不存在的属性的时刻被挪用。
假如试图读取一个对象并不存在的属性的时刻,PHP就会给出毛病信息。假如在类里增加__get要领,而且我们能够用这个函数完成相似java中反射的种种操纵。
class Test { public function __get($key) { echo $key . " 不存在"; } } $t = new Test(); echo $t->name; 输出:name不存在
2、__set()
当试图向一个并不存在的属性写入值的时刻被挪用。
class Test { public function __set($key, $value) { echo '对' . $key . "附值" . $value; } } $t = new Test(); $t->name = "aninggo"; 输出:对name赋值aninggo
3、__call()
当试图挪用一个对象并不存在的要领时,挪用该要领。
class Test { public function __call($Key, $Args) { echo "您要挪用的 {$Key} 要领不存在。你传入的参数是:" . print_r($Args, true); } } $t = new Test(); $t->getName(aning, go); 顺序将会输出: 您要挪用的 getName 要领不存在。参数是:Array ( [0] => aning [1] => go )
4、__toString()
当打印一个对象的时刻被挪用,这个要领相似于java的toString要领,当我们直接打印对象的时刻回挪用这个函数。
class Test { public function __toString() { return "打印 Test"; } } $t = new Test(); echo $t;
运转echo $t;的时刻,就会挪用$t->__toString();从而顺序将会输出:打印 Test;
5、__clone()
当对象被克隆时,被挪用。
class Test { public function __clone() { echo "我被复制了!"; } } $t = new Test(); $t1 = clone $t; 顺序输出:我被复制了!
二、把戏常量
1、__LINE__
返回文件中的当前行号。
2、__FILE__
返回文件的完全途径和文件名。假如用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 老是包含一个绝对途径,而在此之前的版本有时会包含一个相对途径。
3、__DIR__
文件地点的目次。假如用在被包含文件中,则返回被包含的文件地点的目次。它等价于 dirname(__FILE__)。除非是根目次,不然目次中名不包含末端的斜杠。(PHP 5.3.0中新增)
4、__FUNCTION__
返回函数称号(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(辨别大小写)。在 PHP 4 中该值老是小写字母的。
5、__CLASS__
返回类的称号(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(辨别大小写)。在 PHP 4 中该值老是小写字母的。
6、__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(辨别大小写)。Trait 名包含其被声明的作用地区(比方 Foo\Bar)。
7、__METHOD__
返回类的要领名(PHP 5.0.0 新加)。返回该要领被定义时的名字(辨别大小写)。 花样:类名::要领名
8、__NAMESPACE__
当前定名空间的称号(辨别大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)
三、预定义常量
PHP_VERSION
PHP 顺序的版本,如4.0.2PHP_OS
实行PHP诠释器的操纵体系称号,如WindowsPHP_SAPI
用来推断是运用命令行照样浏览器实行的,假如 PHP_SAPI=='cli' 示意是在命令行下实行E_ERROR
近来的毛病处E_WARNING
近来的正告处E_PARSE
理会语法有潜伏题目处E_NOTICE
发作不寻常但不一定是毛病处PHP_EOL
体系换行符,Windows是(\r\n),Linux是(/n),MAC是(\r),自 PHP 4.3.10 和 PHP 5.0.2 起可用DIRECTORY_SEPARATOR
体系目次分隔符,Windows是反斜线(\),Linux是斜线(/)PATH_SEPARATOR
多途径间分隔符,Windows是反斜线(;),Linux是斜线(:)PHP_INT_MAX
INT最大值,32位平台时价为2147483647,自 PHP 4.4.0 和 PHP 5.0.5 起可用PHP_INT_SIZE
INT字长,32位平台时价为4(4字节),自 PHP 4.4.0 和 PHP 5.0.5 起可用
四、PHP运转环境检测函数php_sapi_name()
该函数返回一个形貌PHP与WEB服务器接口的小写字符串。
返回形貌 PHP 所运用的接口类型(the Server API, SAPI)的小写字符串。
比方,CLI 的 PHP 下这个字符串会是 "cli",Apache 下能够会有几个差别的值,取决于细致运用的 SAPI。
以下列出了能够的值:
aolserver、apache、 apache2filter、apache2handler、 caudium、cgi (直到 PHP 5.3), cgi-fcgi、cli、 continuity、embed、 isapi、litespeed、 milter、nsapi、 phttpd、pi3web、roxen、 thttpd、tux 和 webjames。
SAPI: 服务器端API,貌似和CGI是一个东西。每一个服务器供应的API能够差别,然则他们都供应了CGI。
所以能够明白CGI是每一个服务器都应该有的SAPI。apache有本身的SAPI,IIS也有本身的。然则php能在这些差别的服务器端事情,由于php支撑了它们各自的SAPI。
PHP-CLI: php命令行接口,php能够事情在这类形式下也能够CGI形式。是SAPI的一种,它和CGI供应的功用差不多。
想相识更多相干内容或许想更好的控制这些函数以及常量,请接见ki4网:PHP视频教程
以上就是PHP把戏常量、把戏函数、预定义常量细致引见及实例解说的细致内容,更多请关注ki4网别的相干文章!