這篇文章給大家分享的是有關(guān)php中__toString()方法的作用是什么的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)公司專注于云夢(mèng)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城網(wǎng)站定制開發(fā)。云夢(mèng)網(wǎng)站建設(shè)公司,為云夢(mèng)等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
“__toString()”是php中的一個(gè)魔術(shù)方法,在把對(duì)象轉(zhuǎn)換成字符串時(shí)自動(dòng)調(diào)用,用于一個(gè)類被當(dāng)成字符串時(shí)應(yīng)怎樣回應(yīng);該方法必須返回一個(gè)字符串,否則將發(fā)出一條“E_RECOVERABLE_ERROR”級(jí)別的致命錯(cuò)誤。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
__toString(),類被當(dāng)成字符串時(shí)的回應(yīng)方法
__toString()是php中的一個(gè)魔術(shù)方法,在把對(duì)象轉(zhuǎn)換成字符串時(shí)自動(dòng)調(diào)用。
在面向?qū)ο缶幊讨校琍HP 提供了一系列的魔術(shù)方法,這些魔術(shù)方法為編程提供了很多便利,在 PHP 中的作用是非常重要的。PHP 中的魔術(shù)方法通常以__(兩個(gè)下劃線)開始,并且不需要顯式的調(diào)用而是在某種特定條件下自動(dòng)調(diào)用的。
作用:
__toString() 方法用于一個(gè)類被當(dāng)成字符串時(shí)應(yīng)怎樣回應(yīng)。例如 `echo $obj;` 應(yīng)該顯示些什么。
注意:
此方法必須返回一個(gè)字符串,否則將發(fā)出一條 `E_RECOVERABLE_ERROR` 級(jí)別的致命錯(cuò)誤。
警告:
不能在 __toString() 方法中拋出異常。這么做會(huì)導(dǎo)致致命錯(cuò)誤。
代碼:
<?php
class Person
{
public $sex;
public $name;
public $age;
public function __construct($name="", $age=25, $sex='男')
{
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
public function __toString()
{
return 'go go go';
}
}
$person = new Person('小明'); // 初始賦值
echo $person;結(jié)果:
go go go
那么如果類中沒有 __toString() 這個(gè)魔術(shù)方法運(yùn)行會(huì)發(fā)生什么呢?讓我們來(lái)測(cè)試下:
代碼:
<?php
class Person
{
public $sex;
public $name;
public $age;
public function __construct($name="", $age=25, $sex='男')
{
$this->name = $name;
$this->age = $age;
$this->sex = $sex;
}
}
$person = new Person('小明'); // 初始賦值
echo $person;結(jié)果:
Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18 很明顯,頁(yè)面報(bào)了一個(gè)致命錯(cuò)誤,這是語(yǔ)法所不允許的。
擴(kuò)展資料:PHP 中的魔術(shù)方法如下表所示:
| 魔術(shù)方法 | 作用 |
|---|---|
| __construct() | 實(shí)例化類時(shí)自動(dòng)調(diào)用 |
| __destruct() | 類對(duì)象使用結(jié)束時(shí)自動(dòng)調(diào)用 |
| __set() | 在給未定義的屬性賦值時(shí)自動(dòng)調(diào)用 |
| __get() | 調(diào)用未定義的屬性時(shí)自動(dòng)調(diào)用 |
| __isset() | 使用 isset() 或 empty() 函數(shù)時(shí)自動(dòng)調(diào)用 |
| __unset() | 使用 unset() 時(shí)自動(dòng)調(diào)用 |
| __sleep() | 使用 serialize 序列化時(shí)自動(dòng)調(diào)用 |
| __wakeup() | 使用 unserialize 反序列化時(shí)自動(dòng)調(diào)用 |
| __call() | 調(diào)用一個(gè)不存在的方法時(shí)自動(dòng)調(diào)用 |
| __callStatic() | 調(diào)用一個(gè)不存在的靜態(tài)方法時(shí)自動(dòng)調(diào)用 |
| __toString() | 把對(duì)象轉(zhuǎn)換成字符串時(shí)自動(dòng)調(diào)用 |
| __invoke() | 當(dāng)嘗試把對(duì)象當(dāng)方法調(diào)用時(shí)自動(dòng)調(diào)用 |
| __set_state() | 當(dāng)使用 var_export() 函數(shù)時(shí)自動(dòng)調(diào)用,接受一個(gè)數(shù)組參數(shù) |
| __clone() | 當(dāng)使用 clone 復(fù)制一個(gè)對(duì)象時(shí)自動(dòng)調(diào)用 |
| __debugInfo() | 使用 var_dump() 打印對(duì)象信息時(shí)自動(dòng)調(diào)用 |
感謝各位的閱讀!關(guān)于“php中__toString()方法的作用是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
文章名稱:php中__toString()方法的作用是什么
網(wǎng)址分享:http://chinadenli.net/article18/jigsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、企業(yè)建站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)