PHP-objektorientierte, detaillierte Codebeispiele für __tostring() und __invoke()

黄舟
Freigeben: 2023-03-07 06:28:01
Original
1827 Leute haben es durchsucht

tostring()Magische Methode

Wenn ein Objekt als String verwendet wird, wird es diese Methode verwenden wird automatisch aufgerufen, und in dieser Methode kann eine bestimmte Zeichenfolge zurückgegeben werden, um das Ergebnis der Konvertierung des Objekts in eine Zeichenfolge anzuzeigen. Diese magische Methode ist relativ verbreitet.
Hinweis: Wenn diese Methode nicht definiert ist, kann das Objekt nicht als String verwendet werden! Beispiele für undefinierte tostring()-Methoden in

-Klassen:

<?php
ini_set(&#39;display_errors&#39;, 1);
class A{
    public $name;    
    public $age;   
     public $sex;    
     function construct($name, $age, $sex){
        $this->name = $name;        
        $this->age = $age;        
        $this->sex = $sex;   
    }
}
$obj1 = new A(&#39;张三&#39;, 15, &#39;男&#39;);
echo $obj1;    //echo 后面为字符串,而对象不是字符串,会报错
$v1 = "abc" . $obj1;  //.为字符串连接符,会报错
$v2 = "abx" + $obj1;  //+为加法运算符,会报错?>
Nach dem Login kopieren

Die drei Fehlerinhalte sind

Catchable fatal error: Object of class A could not be converted to string
Catchable fatal error: Object of class A could not be converted to string
Notice: Object of class A could not be converted to int
Nach dem Login kopieren

Die tostring()-Methode ist in der Klasse definiert

<?php
ini_set(&#39;display_errors&#39;, 1);
class A{
    public $name;    
    public $age;    
    public $sex;    
    function construct($name, $age, $sex){
        $this->name = $name;        
        $this->age = $age;        
        $this->sex = $sex;   
    }    function tostring(){
        $str = "姓名:" . $this->name;   
        $str .= "年龄:" . $this->age;    
        $str .= ",性别:" . $this->sex;        
        return $str;   //这里可以返回“任何字符串内容”

    }
}
$obj1 = new A(&#39;张三&#39;, 15, &#39;男&#39;);
echo $obj1;    //调用tostring(),不会报错?>
Nach dem Login kopieren

Laufergebnis

姓名:张三年龄:15,性别:男
Nach dem Login kopieren

aufrufen ( )Magische Methode

Diese Methode wird automatisch aufgerufen, wenn das Objekt als Funktion verwendet wird. Dies wird grundsätzlich nicht empfohlen.

class A{
    function invoke(){
        echo "<br />我是一个对象呀,你别把我当作一个函数来调用啊!";
    }
}$obj = new A();$obj();    //此时就会调用类中的方法:invoke()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP-objektorientierte, detaillierte Codebeispiele für __tostring() und __invoke(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!