亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

基于PHP5魔術常量與魔術方法的詳解

2020-03-22 17:36:33
字體:
來源:轉載
供稿:網友
魔術常量:
1。__LINE__
返回文件中的當前行號。
2。__FILE__
返回文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自PHP4.0.2 起,__FILE__總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。
3。__FUNCTION__
返回函數名稱(PHP4.3.0 新加)。自PHP5 起本常量返回該函數被定義時的名字(區分大小寫)。在PHP4 中該值總是小寫字母的。
4。__CLASS__
返回類的名稱(PHP4.3.0 新加)。自PHP5 起本常量返回該類被定義時的名字(區分大小寫)。在PHP4 中該值總是小寫字母的。
5。__METHOD__
返回類的方法名(PHP5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
魔術函數:
1。__construct()
html' target='_blank'>構造函數: 實例化對象時被調用,
當__construct和以類名為函數名的構造函數同時存在時,__construct將被調用,另一個不被調用。
4。__get()
讀取一個對象的屬性時,若屬性存在,則直接返回屬性值;若不存在,則會調用__get函數。
5。__set()
設置一個對象的屬性時,
若屬性存在,則直接賦值;
若不存在,則會調用__set函數。
6。__toString()
打印一個對象的時被調用。如echo$obj;或print$obj;
7。__clone()
克隆對象時被調用。如:$t=newTest();$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()
實例化一個對象時,如果對應的類不存在,則該方法被調用。初識魔術方法
Php5.0發布以來為我們提供了很多面向對象的特性,尤其是為我們提供了好多易用的魔術方法,這些魔術方法可以讓我們簡化我們的編碼,更好的設計我們的系統。今天我們就來認識下php5.0給我們提供的魔術方法。
PHP| 魔術方法|__toString(),__clone(),__call(),__autoload() 詳解
__toString()
如果我有一個類:
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/
}
}
現在我去實例化這個類,然后去打印這個實例:
$p1= new person(“liuzy”,20);
echo $p1; //直接打印會出錯
顯然這樣直接打印對象是會出現錯誤的,因為對象是引用句柄,不能直接打印。這時,我們可以用到__toString()方法。我們在Person類里加一個__toString()方法:
function__toString()
{
return “I am Person,my name is“.$this- name.” br/
}
然后再刷新頁面,發現什么了?
現在我們明白,__toString()是在直接打印對象時執行的方法,我們可以用該方法打印類的一些相關信息。注意:是兩個下劃線,方法必須有返回值。
__clone()
我們知道對象是可以直接賦值的,比如
$p2= $p1; //這里是一個對象有兩個引用
那么我執行:
$p1- say();
$p2- say();
是都可以執行的,而且效果一樣。我們還有一種方法:
$p3= clone $p1; //注意clone是克隆關鍵字,這里與上面的不同是$p3是一個新的對象。
同時我們在類里加入一個方法:
function__clone()
{
$this- name = “我是副本”; //注意:這里的$this是克隆產生的對象本身,不是當前類
}
然后我們執行:
$p3- say();
打印出:
name:我是副本
age:20
到這里我們明白,__clone()方法是在克隆對象的時候執行的方法,它的作用是對新克隆出來的副本進行屬性初始化等操作。
__call()
這個方法的主要功能是:在該類的實例調用一個不存在的方法時,執行該__call()方法。注意需要提前在類里聲明:
function__call($fname,$argus)
{
echo “你調用的方法:”.$fname.”不存在 br/
echo“參數是”.print_r($argus);
}
__autoload()
我們在平時調用一個類的時候,必須要先將該類所在的文件引入(include“xxx.php”),如果我們在一個頁里調用的類很多,那么我們不得不使用許多的include“xxx.php”。顯然這樣很麻煩。
__autoload()方法可以幫我們解決這個問題。

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

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清电影免费观看完整| 亚洲精品电影在线| 亚洲无限乱码一二三四麻| 欧美激情亚洲一区| 久久久久久这里只有精品| 午夜精品视频在线| 精品久久久香蕉免费精品视频| 成人综合国产精品| 日韩美女视频免费在线观看| 国外视频精品毛片| 久久久国产精品视频| 亚洲国产97在线精品一区| 欧美性猛交99久久久久99按摩| 亚洲精品女av网站| 久久久久久国产三级电影| 青青在线视频一区二区三区| 亚洲第一精品夜夜躁人人躁| 久久久中文字幕| 久久久在线免费观看| 一区二区三区日韩在线| 欧美大片欧美激情性色a∨久久| 亚洲全黄一级网站| 俺去了亚洲欧美日韩| 91精品视频免费| 日韩不卡在线观看| 美女av一区二区| 亚洲欧洲成视频免费观看| 日韩精品中文字幕在线| 欧美日产国产成人免费图片| 2019中文字幕全在线观看| 国产精品久久久av久久久| 亚洲成人黄色网址| 国产精品一区二区女厕厕| 中文字幕日韩免费视频| 久久成人人人人精品欧| 亚洲第一视频网站| 国产一区二区三区三区在线观看| 精品综合久久久久久97| 一本大道亚洲视频| 久久久欧美一区二区| 久久免费精品日本久久中文字幕| 亚洲精选在线观看| 欧美日韩免费区域视频在线观看| 自拍偷拍亚洲在线| 欧美国产日韩一区二区| 亚洲一区二区三区777| 久久久久久久久综合| 国产日韩欧美视频在线| 亚洲黄色片网站| 国产精品第2页| 日韩av免费在线观看| 精品国产一区二区三区久久狼5月| 亚洲最大福利网站| 成人国产精品色哟哟| 91精品一区二区| 久久影院中文字幕| 欧美一级在线播放| 欧美日韩国产限制| 亚洲韩国日本中文字幕| 欧美激情在线有限公司| 亚洲欧洲美洲在线综合| 欧美日韩国产页| 亚洲第一福利网站| 亚洲美女中文字幕| 欧美三级欧美成人高清www| 自拍偷拍亚洲在线| 最近2019年中文视频免费在线观看| 久久久久久久一区二区三区| 2018日韩中文字幕| 国产精品久久久| 日韩久久午夜影院| 国产精品av免费在线观看| 91精品国产777在线观看| 国产欧美精品xxxx另类| 国产精品视频久| 亚洲国产欧美一区二区三区同亚洲| 久久久免费高清电视剧观看| 欧美电影免费观看大全| 欧美成人网在线| 欧美精品电影免费在线观看| 欧美成人精品在线播放| 成人免费视频网址| 久久精品福利视频| 狠狠躁18三区二区一区| 在线成人一区二区| 国产欧美精品一区二区三区介绍| 97人洗澡人人免费公开视频碰碰碰| 日韩精品一区二区视频| 欧美日韩激情网| 精品欧美激情精品一区| 中文字幕精品网| 亚洲国产成人久久| 久久久精品久久久| 伊人激情综合网| 成人a免费视频| 久久亚洲精品毛片| 久久艳片www.17c.com| 亚洲一区www| 国产精品一区二区av影院萌芽| 色多多国产成人永久免费网站| 97av在线视频免费播放| 97视频在线免费观看| 中文一区二区视频| 亚洲精品久久久久国产| 日韩在线视频二区| 久久成年人免费电影| 伊人激情综合网| 亚洲欧洲一区二区三区在线观看| 久久久久久久久久亚洲| 久久99视频精品| 欧美激情综合色综合啪啪五月| 亚洲有声小说3d| 琪琪亚洲精品午夜在线| 国产成人久久久| 欧美性视频精品| 97在线免费观看| 亚洲美女精品成人在线视频| 欧美国产日韩一区二区| 亚洲天堂第二页| 中文.日本.精品| 国产精品美女无圣光视频| 亚洲人成电影在线观看天堂色| 伊人伊成久久人综合网小说| 久久综合久久八八| 中文字幕在线日韩| 一级做a爰片久久毛片美女图片| 日本精品久久久久久久| 欧美性videos高清精品| 欧美高清不卡在线| 在线看日韩av| 狠狠操狠狠色综合网| 亚洲欧美福利视频| 日本久久久久久久久久久| 国产一区二区丝袜| 高清一区二区三区日本久| 欧美日本黄视频| 日韩av日韩在线观看| 精品久久香蕉国产线看观看gif| 国产精品免费一区豆花| 中文字幕亚洲综合久久筱田步美| 精品欧美激情精品一区| 久久久久国色av免费观看性色| 亚洲男人天堂九九视频| 亚洲国产成人在线播放| 国产亚洲欧美aaaa| 成人中文字幕+乱码+中文字幕| 成人国产精品免费视频| 亚洲国产精品资源| 亚洲精品久久久一区二区三区| 日韩精品视频免费专区在线播放| 日韩国产高清污视频在线观看| 欧美精品日韩三级| 午夜精品蜜臀一区二区三区免费| 国产亚洲视频中文字幕视频| 国产国语刺激对白av不卡| 国产极品精品在线观看| 日韩欧美在线看| 国产精品视频一区二区三区四| 欧美在线一区二区视频| 一区国产精品视频| 欧美大尺度电影在线观看| 欧美一区二区.| 亚洲欧美精品suv| 欧美日韩综合视频|