__unset()。アクセスできないプロパティに対して unset() が呼び出されたときに呼び出されます。
このメソッドを見る前に、unset() 関数を見てみましょう。unset() の関数は、指定された変数を削除し、true を返すことです。パラメータは削除する変数です。 。
では、オブジェクトの外部にあるオブジェクト内のメンバー属性を削除したい場合は、unset() 関数を使用できますか?
ここには当然 2 つの状況があります:
1. オブジェクト内のメンバー属性がパブリックである場合、この関数を使用してオブジェクトの外部にあるオブジェクトを削除できます。公共の財産。
2. オブジェクトのメンバー属性がプライベートである場合、この関数を使用してそれらを削除する権限はありません。
上記の 2 つの状況がありますが、何が言いたいかというと、オブジェクトに __unset() メソッドを追加すると、オブジェクトのプライベート メンバー属性をオブジェクトの外に削除できるということです。 __unset() メソッドをオブジェクトに追加した後、オブジェクトの外部で「unset()」関数を使用してオブジェクト内のプライベート メンバー属性を削除すると、オブジェクトは自動的に __unset() 関数を呼び出して、プライベート メンバーの削除を支援します。オブジェクト内の属性、メンバーのプロパティ。
次のコードを参照してください:
<?php class Person { public $sex; private $name; private $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } /** * @param $content * * @return bool */ public function __unset($content) { echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>"; echo isset($this->$content); } } $person = new Person("小明", 25); // 初始赋值 unset($person->sex); unset($person->name); unset($person->age);
実行結果:
当在类外部使用unset()函数来删除私有成员时自动调用的 1当在类外部使用unset()函数来删除私有成员时自动调用的 1
以上がPHPの__unset()メソッドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。