PHP魔术常量、魔术函数、预定义常量详细介绍及实例讲解-php教程

资源魔 37 0
1、魔术常量

一、__construct()

实例化工具时被挪用, 当__construct以及以类名为函数名的函数同时存正在时,__construct将被挪用,另外一个没有被挪用。

二、__destruct()

当删除了一个工具或工具操作终止时被挪用

三、__call()

工具挪用某个办法, 若办法存正在,则间接挪用;若没有存正在,则会去挪用__call函数

四、__get()

读取一个工具的属性时,若属性存正在,则间接前往属性值; 若没有存正在,则会挪用__get函数。

五、__set()
设置一个工具的属性时, 若属性存正在,则间接赋值; 若没有存正在,则会挪用__set函数。

六、__toString()
打印一个工具的时分被挪用。如echo $obj;或print $obj;

七、__clone()
克隆工具时被挪用。如:$t=new Test();$t1=clone $t;

八、__sleep()
serialize以前被挪用。若工具比拟年夜,想删减一点东东再序列化,可思考一下此函数。

九、__wakeup()
unserialize时被挪用,做些工具的初始化工作。

十、__isset()
检测一个工具的属性能否存正在时被挪用。如:isset($c->name)。

十一、__unset()
unset一个工具的属性时被挪用。如:unset($c->name)。

十二、__set_state()
挪用var_export时,被挪用。用__set_state的前往值做为var_export的前往值。

1三、__autoload()
实例化一个工具时,假如对应的类没有存正在,则该办法被挪用。

举例阐明:

一、__get() 当试图读取一个其实不存正在的属性的时分被挪用。

假如试图读取一个工具其实不存正在的属性的时分,PHP就会给犯错误信息。假如正在类里增加__get办法,而且咱们能够用这个函数完成相似java中反射的各类操作。

class Test 
{ 
     public function __get($key) 
    { 
         echo $key . " 没有存正在"; 
    } 
} 

$t = new Test(); 
echo $t->name; 
输入:name没有存正在

二、__set() 当试图向一个其实不存正在的属性写入值的时分被挪用。

class Test 
{ 
    public function __set($key, $value) 
    { 
         echo '对' . $key . "附值" . $value; 
    } 
} 

$t = new Test(); 
$t->name = "aninggo"; 
输入:对name赋值aninggo

三、__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
)

四、__toString() 当打印一个工具的时分被挪用,这个办法相似于java的toString办法,当咱们间接打印工具的时分回挪用这个函数。

class Test 
{ 
     public function __toString() 
     { 
         return "打印 Test"; 
     } 
} 

$t = new Test(); 
echo $t;

运转echo $t;的时分,就会挪用$t->__toString();从而顺序将会输入:打印 Test;

五、__clone() 当工具被克隆时,被挪用。

class Test 
{ 
     public function __clone() 
     { 
         echo "我被复制了!"; 
     }
}

$t = new Test(); 
$t1 = clone $t;

顺序输入:我被复制了!

2、魔术常量

一、__LINE__
前往文件中确当前行号。
二、__FILE__
前往文件的完好门路以及文件名。假如用正在蕴含文件中,则前往蕴含文件名。自 PHP 4.0.2 起,__FILE__ 老是蕴含一个相对门路,而正在此以前的版本有时会蕴含一个绝对门路。

三、__DIR__
文件所正在的目次。假如用正在被包罗文件中,则前往被包罗的文件所正在的目次。它等价于 dirname(__FILE__)。除了非是根目次,不然目次中名没有包罗末尾的斜杠。(PHP 5.3.0中新增)
四、__FUNCTION__
前往函数称号(PHP 4.3.0 新加)。自 PHP 5 起本常量前往该函数被界说时的名字(区别巨细写)。正在 PHP 4 中该值老是小写字母的。
五、__CLASS__
前往类的称号(PHP 4.3.0 新加)。自 PHP 5 起本常量前往该类被界说时的名字(区别巨细写)。正在 PHP 4 中该值老是小写字母的。

六、__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量前往 trait 被界说时的名字(区别巨细写)。Trait 名包罗其被申明的作用区域(例如 Foo\Bar)。
七、__METHOD__
前往类的办法名(PHP 5.0.0 新加)。前往该办法被界说时的名字(区别巨细写)。 格局:类名::办法名

八、__NAMESPACE__
以后定名空间的称号(区别巨细写)。此常量是正在编译时界说的(PHP 5.3.0 新增)

3、预约义常量

PHP_VERSION PHP 顺序的版本,如4.0.2
PHP_OS 执行PHP诠释器的操作零碎称号,如Windows
PHP_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 起可用

4、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提供的性能差没有多。

想理解更多相干内容或许想更好的把握这些函数和常量,请拜访PHP中文网:PHP视频教程

以上就是PHP魔术常量、魔术函数、预约义常量具体引见及实例解说的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 魔术常量

抱歉,评论功能暂时关闭!