Heim >Backend-Entwicklung >PHP-Tutorial >PHP-objektorientierte, detaillierte Codebeispiele für __tostring() und __invoke()

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

黄舟
黄舟Original
2017-03-27 10:06:401914Durchsuche

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;  //+为加法运算符,会报错?>

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

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(),不会报错?>

Laufergebnis

姓名:张三年龄:15,性别:男

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()

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!

Stellungnahme:
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