天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

基于PHP5魔術(shù)常量與魔術(shù)方法的詳解

魔術(shù)常量:
1。__LINE__
返回文件中的當(dāng)前行號(hào)。
2。__FILE__
  返回文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自php4.0.2 起,__FILE__總是包含一個(gè)絕對(duì)路徑,而在此之前的版本有時(shí)會(huì)包含一個(gè)相對(duì)路徑。
3。__FUNCTION__
  返回函數(shù)名稱(php4.3.0 新加)。自php5 起本常量返回該函數(shù)被定義時(shí)的名字(區(qū)分大小寫)。在php4 中該值總是小寫字母的。
4。__CLASS__
  返回類的名稱(php4.3.0 新加)。自php5 起本常量返回該類被定義時(shí)的名字(區(qū)分大小寫)。在php4 中該值總是小寫字母的。
5。__METHOD__
  返回類的方法名(php5.0.0 新加)。返回該方法被定義時(shí)的名字(區(qū)分大小寫)。
魔術(shù)函數(shù):
1。__construct()
  構(gòu)造函數(shù): 實(shí)例化對(duì)象時(shí)被調(diào)用,
  當(dāng)__construct和以類名為函數(shù)名的構(gòu)造函數(shù)同時(shí)存在時(shí),__construct將被調(diào)用,另一個(gè)不被調(diào)用。
4。__get()
  讀取一個(gè)對(duì)象的屬性時(shí),若屬性存在,則直接返回屬性值;若不存在,則會(huì)調(diào)用__get函數(shù)。
5。__set()
  設(shè)置一個(gè)對(duì)象的屬性時(shí),
  若屬性存在,則直接賦值;
  若不存在,則會(huì)調(diào)用__set函數(shù)。
6。__toString()
  打印一個(gè)對(duì)象的時(shí)被調(diào)用。如echo$obj;或print$obj;
7。__clone()
  克隆對(duì)象時(shí)被調(diào)用。如:$t=newTest();$t1=clone $t;
8。__sleep()
  serialize之前被調(diào)用。若對(duì)象比較大,想刪減一點(diǎn)東東再序列化,可考慮一下此函數(shù)。
9。__wakeup()
  unserialize時(shí)被調(diào)用,做些對(duì)象的初始化工作。
10。__isset()
  檢測(cè)一個(gè)對(duì)象的屬性是否存在時(shí)被調(diào)用。如:isset($c->name)。
11。__unset()
  unset一個(gè)對(duì)象的屬性時(shí)被調(diào)用。如:unset($c->name)。
12。__set_state()
  調(diào)用var_export時(shí),被調(diào)用。用__set_state的返回值做為var_export的返回值。
13。__autoload()
  實(shí)例化一個(gè)對(duì)象時(shí),如果對(duì)應(yīng)的類不存在,則該方法被調(diào)用。

初識(shí)魔術(shù)方法
php5.0發(fā)布以來為我們提供了很多面向?qū)ο蟮奶匦?尤其是為我們提供了好多易用的魔術(shù)方法,這些魔術(shù)方法可以讓我們簡化我們的編碼,更好的設(shè)計(jì)我們的系統(tǒng)。今天我們就來認(rèn)識(shí)下php5.0給我們提供的魔術(shù)方法。
php| 魔術(shù)方法|__toString(),__clone(),__call(),__autoload() 詳解
__toString()
如果我有一個(gè)類:
classPerson
{
private $name = “”;
private $age = 0;
function__construct($name = “”, $age = “”)
{
$this->name =$name;
$this->age = $age;
}
functionsay()
{
echo“name:”.$this->name.”<br/>”.”age:”.$this->age.”<br/>”;  
}
}
現(xiàn)在我去實(shí)例化這個(gè)類,然后去打印這個(gè)實(shí)例:
$p1= new person(“l(fā)iuzy”,20);
echo $p1;  //直接打印會(huì)出錯(cuò)
顯然這樣直接打印對(duì)象是會(huì)出現(xiàn)錯(cuò)誤的,因?yàn)閷?duì)象是引用句柄,不能直接打印。這時(shí),我們可以用到__toString()方法。我們?cè)赑erson類里加一個(gè)__toString()方法:
function__toString()
{
return “I am  Person,my name is“.$this->name.”<br/>”;
}
然后再刷新頁面,發(fā)現(xiàn)什么了?
現(xiàn)在我們明白,__toString()是在直接打印對(duì)象時(shí)執(zhí)行的方法,我們可以用該方法打印類的一些相關(guān)信息。注意:是兩個(gè)下劃線,方法必須有返回值。
__clone()
我們知道對(duì)象是可以直接賦值的,比如
$p2= $p1;   //這里是一個(gè)對(duì)象有兩個(gè)引用
那么我執(zhí)行:
$p1->say();
$p2->say();
是都可以執(zhí)行的,而且效果一樣。

我們還有一種方法:
$p3= clone $p1;    //注意clone是克隆關(guān)鍵字,這里與上面的不同是$p3是一個(gè)新的對(duì)象。
同時(shí)我們?cè)陬惱锛尤胍粋€(gè)方法:
function__clone()
{
$this->name = “我是副本”; //注意:這里的$this是克隆產(chǎn)生的對(duì)象本身,不是當(dāng)前類
}
然后我們執(zhí)行:
$p3->say();
打印出:
name:我是副本
age:20
到這里我們明白,__clone()方法是在克隆對(duì)象的時(shí)候執(zhí)行的方法,它的作用是對(duì)新克隆出來的副本進(jìn)行屬性初始化等操作。
__call()
這個(gè)方法的主要功能是:在該類的實(shí)例調(diào)用一個(gè)不存在的方法時(shí),執(zhí)行該__call()方法。注意需要提前在類里聲明:
function__call($fname,$argus)
{
echo “你調(diào)用的方法:”.$fname.”不存在<br/>”;
echo“參數(shù)是”.print_r($argus);
}
__autoload()
我們?cè)谄綍r(shí)調(diào)用一個(gè)類的時(shí)候,必須要先將該類所在的文件引入(include“xxx.php”),如果我們?cè)谝粋€(gè)頁里調(diào)用的類很多,那么我們不得不使用許多的include“xxx.php”。顯然這樣很麻煩。
__autoload()方法可以幫我們解決這個(gè)問題。

比如我們將上面的那個(gè)Person類所在的文件定義為Person_class.php
再新建一個(gè)php文件 test.php,編輯內(nèi)容:
function __autoload($calssName)
{
include $className.”_class.php”; //看到這也許你就明白了吧?哈哈
}
$p= new Person(“mifan”, 22);
$p->say();
這樣執(zhí)行該test.php頁面就不會(huì)出現(xiàn)錯(cuò)誤了。
__autoload()方法是在生命不存在的類時(shí)調(diào)用的方法,它有一個(gè)string類型的參數(shù)是聲明該不存在類的類名。
當(dāng)然,類文件的命名也是很有講究的。最好是和類有關(guān)系,比如Person_class.php

php技術(shù)基于PHP5魔術(shù)常量與魔術(shù)方法的詳解,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 女教师杨雪的性荡生活 | 最近韩国日本免费观看mv免费版 | 果冻传媒9CM在线观看 | 2021全国精品卡一卡二 | 又色又爽又黄gif动态视频 | 人妻插B视频一区二区三区 人妻 中文无码 中出 | 国产一卡 二卡三卡四卡无卡乱码视频 | 国产主播福利一区二区 | 女女破视频在线观看 | wwww69| 国产人妻人伦精品熟女麻豆 | 国产手机在线亚洲精品观看 | 99免费在线观看 | 久久视热频国只有精品 | 伊人青青久 | 中文字幕一区中文亚洲 | 午夜性爽视频男人的天堂在线 | 99久久中文字幕伊人情人 | 99E久热只有精品8在线直播 | 亚洲色欲色欲WWW在线成人网 | 国产精品久久久久久人妻精品流 | 涩涩伊人久久无码欧美 | 十分钟免费看完整视频 | 美女脱内衣裸身尿口露出来 | 亚洲日韩欧美国产专区 | 亚洲精品蜜夜内射 | 2021国产精品久久久久精品免费网 | 免费精品一区二区三区在线观看 | 日本欧美久久久久免费播放网 | 亚洲视频不卡 | 免费观看成人www精品视频在线 | 处 女 开 破小说 | 日日摸夜夜添夜夜爽出水 | 免费韩伦影院在线观看 | 免费人成视频19674不收费 | 国产精品人妻在线观看 | 强被迫伦姧惨叫VIDEO | 亚洲va在线va天堂XX xX | 国产精品xxxav免费视频 | 语文老师扒开胸罩喂我奶 | 浪荡受自我调教纯肉BL |