ホームページ  >  記事  >  バックエンド開発  >  マジックメソッド ___toString() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)

マジックメソッド ___toString() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)

巴扎黑
巴扎黑オリジナル
2017-04-18 18:16:202126ブラウズ

クラスをインスタンス化した後、クラスの属性にアクセスするときは、常に $インスタンス名 -> 属性名 の形式でアクセスすることは誰もが知っています。それでは、echo または print を使用してオブジェクトを直接出力しようとしたことがありますか?その結果。これは機能しないはずで、エラーが報告されるだろうという人もいます。はい、そのような直接出力では確かにエラーが報告されますが、マジック メソッド __toString を使用すると問題ありません。 __toString() メソッドは、オブジェクトを出力する前にまず文字列に変換します。これにより、echo または print を使用して出力できるようになります。

インスタンス分析:

<?php
header("content-type:text/html;charset=utf-8");
class Preson{
public $name;
private $age;
function __construct($name,$age)
{
$this->name = $name;
$this->age = $age;
}
public function __toString()
{
return $this->name . &#39;今年已经&#39; . $this->age . &#39;岁了&#39;;
}
}
$preson = new Preson(&#39;小明&#39;,18);
echo $preson;

コード分析:

最初に人間のクラスを作成し、属性を定義し、コンストラクターを作成し、次にこのクラスをインスタンス化し、最後にクラス名を直接エコーします。ページにエラー メッセージが表示されることがわかります: クラス Preson のオブジェクトは D:WWWtostring.php の 15 行目で文字列に変換できませんでした。これは、オブジェクトのクラスを文字列に変換できず、出力できないことを意味します。したがって、__toString() メソッドを追加し、必要な結果をメソッド内で直接返すだけです。

以上がマジックメソッド ___toString() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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