「__toString()」是php中的一個魔術方法,在把物件轉換成字串時自動調用,用於一個類別被當成字串時應如何回應;該方法必須傳回一個字串,否則將發出一條「E_RECOVERABLE_ERROR」等級的致命錯誤。
本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦
__toString(),類別當成字串時的回應方法
__toString()是php中的一個魔術方法,在把物件轉換成字串時自動呼叫。
在物件導向程式設計中,PHP 提供了一系列的魔術方法,這些魔術方法為程式設計提供了許多便利,在 PHP 中的作用是非常重要的。 PHP 中的魔術方法通常以__(兩個底線)開始,不需要明確的呼叫而是在某種特定條件下自動呼叫的。
作用:
__toString() 方法用於一個類別被當成字串時應怎樣回應。例如 `echo $obj;` 應該要顯示些什麼。
注意:
此方法必須傳回字串,否則將發出一條 `E_RECOVERABLE_ERROR` 層級的致命錯誤。
警告:
不能在 __toString() 方法中拋出例外。這麼做會導致致命錯誤。
程式碼:
<?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;
結果:
go go go
那麼如果類別中沒有 __toString() 這個魔術方法運行會發生什麼事呢?讓我們來測試下:
程式碼:
<?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;
結果:
Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18 很明显,页面报了一个致命错误,这是语法所不允许的。
擴充資料:PHP 中的魔術方法如下表所示:
魔術方法 | 作用 |
---|---|
#__construct() | 實例化類別時會自動調用 |
__destruct() | 類別物件使用結束時自動呼叫 |
__set() | 在給未定義的屬性賦值時自動呼叫 |
__get() | #在呼叫未定義的屬性時自動呼叫 |
__isset() | 使用isset() 或empty() 函數時自動呼叫 |
__unset() | 使用unset() 時自動呼叫 |
__sleep() | 使用serialize 序列化時自動呼叫 |
__wakeup() | 使用unserialize反序列化時自動呼叫 |
__call() | 呼叫不存在的方法時自動呼叫 |
呼叫一個不存在的靜態方法時自動呼叫 | |
#把物件轉換成字串時自動呼叫 | |
當嘗試把物件當方法呼叫時自動呼叫 | |
當使用var_export() 函數時自動調用,接受一個數組參數 | |
#當使用clone 複製一個物件時自動調用 | |
使用var_dump() 列印物件資訊時自動呼叫 |
以上是php __toString()方法有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版
視覺化網頁開發工具