ホームページ >バックエンド開発 >PHPチュートリアル >プライベートフィールド private には外部からアクセスすることもできます
e8b18fa8da1691b835e97a286e2a32b5$valuee6e38b3c62e8df885fe2e3986461aa63"); nowamagic();
$ins->domain = "nowamagic.net";
echo $ins->domain
; set を使用して属性ドメインを設定し、値を nowamagic.net に割り当てます。
get を使用して属性 nowamagic.net にアクセスします
プライベート フィールド private に外部からアクセスできないように適切に設定するにはどうすればよいですか?
ディスカッション (解決策) に返信します
あなたのアクセスは、パブリック メソッド __set および __get を介して行われています
それらを削除して、プライベート ドメインにまだアクセスできるかどうかを確認できます
の __get メソッドを介してアクセスしています。
__get はパブリック メソッドなので、外部から呼び出すことができます。 クラス内のメソッドにはプライベート変数を呼び出す権限があるため、__get メソッドをプライベートに呼び出しても問題ありません。
class nowamagic {private $domain; function __get($key){ if($key!='domain'){ return "使用get访问属性".$this->$key; } } function __set($key,$value){ if($key!='domain'){ $this->$key = $value; echo("使用set设置属性$key, 赋值为:<font color=red>$value</font>"); } }}$ins = new nowamagic();$ins->domain = "nowamagic.net";echo '<br />';echo $ins->domain;
クラス内のプライベート属性は、set や get を使用せずに実装できます。