ホームページ  >  記事  >  バックエンド開発  >  PHPの__toString()メソッドの詳しい説明

PHPの__toString()メソッドの詳しい説明

藏色散人
藏色散人オリジナル
2019-07-24 14:00:4810955ブラウズ

__toString()、クラスが文字列として扱われる場合の応答メソッド

関数:

__toString() メソッドが使用されますクラスの場合、文字列として扱われる場合の応答方法。たとえば、`echo $obj;` が表示する内容です。

注:

このメソッドは文字列を返さなければなりません。そうでない場合は、`E_RECOVERABLE_ERROR` レベルの致命的なエラーが発行されます。

警告:

__toString() メソッドでは例外をスローできません。致命的なエラーが発生します。

コード:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    public function __toString()
    {
        return  &#39;go go go&#39;;
    }
}
$person = new Person(&#39;小明&#39;); // 初始赋值
echo $person;

結果:

go go go

では、クラスに __toString() マジック メソッドが存在しない場合はどうなるのでしょうか?テストしてみましょう:

コード:

<?php
class Person
{
    public $sex;
    public $name;
    public $age;
    public function __construct($name="",  $age=25, $sex=&#39;男&#39;)
    {
        $this->name = $name;
        $this->age  = $age;
        $this->sex  = $sex;
    }
    
}
$person = new Person(&#39;小明&#39;); // 初始赋值
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の__toString()メソッドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。