php 魔术方法 __tostring() __invoke()

//__tostring() 用于屏蔽错误信息,当需要输出错误信息时,用本函数内返回的字符串代替
//__invoke() 用于屏蔽错误信息,当把对象当作函数调用时,会执行本函数

<?php header("Content-type: text/html; charset=utf-8"); //设置中国时区 date_default_timezone_set('PRC'); // $str='mypic.jpg'; // echo strlen($str); // echo date('YmdHis').substr($str,stripos($str,'.'),strlen($str)-stripos($str,'.'))."<br>"; // echo md5('123'); class Student { protected $name="Karl"; private $age = 24; public $edu = "大专"; public function showInfo() { echo "<h2>遍历对象属性</h2>"; foreach($this as $key=>$value){ echo "\$this->{$key} = {$value}<br>"; } } public function __tostring() { return "Happy birthday!"; } public function __invoke() { return "I come from invoke!"; } } $obj1 = new Student(); // $obj2 = clone $obj1; // $obj3 = clone $obj1; // var_dump($obj1,$obj2,$obj3); // $obj1->showInfo(); var_dump($obj1); echo $obj1(); // echo 110+"abc";

 

posted @ 2022-10-02 11:35  paoPaoLong_liu  阅读(41)  评论(0)    收藏  举报