この記事では主に外部呼び出しクラスのプライベート プロパティについて説明しますが、これには一定の参照価値があります。興味のある友人はそれについて学び、あなたを助けることを願っています。
最初に、PHP クラスの __get
関数と __set
関数を見てみましょう
試行する場合属性に到達すると、クラスは自動的に __get
関数を呼び出します。
到達不可能なプロパティを設定しようとすると、クラスは自動的に __set
関数を呼び出します。
まず、__get
関数を見てみましょう。到達可能な属性を取得してみましょう:
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->a; ?>
その戻り値を見てみましょう:
1
問題ありません。__get
関数は呼び出されません。次に、プライベート到達不能属性
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->b; ?>
にアクセスすると、次のものが見つかります:
you can get b
これは、__get を意味します。ここでは
関数が呼び出されます。最初に、到達可能な public
属性も使用する __set
関数を見てみましょう。
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->a = 1; echo $dy->a; ?>
出力を見てください。 :
1
正常に使用されました。問題ありません。その後、プライベート属性を使用します:
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->b = 1; echo $dy->b; ?>
この時点で、次のことがわかります:
you can get b1 PHP Fatal error: Cannot access private property A::$b in /usercode/file.php on line 11
__set
関数は次のとおりです。ここで呼び出され、クラスのプライベート プロパティを使用できないことを通知します。
次に、__set
関数を使用して、プライベート属性の外部使用を実装しましょう:
<?php class A{ public $a; private $b; function __set($name,$val){ $this->$name=$val; } function B(){ echo $this->b; } } $dy = new A(); $dy->b = 1; $dy->B(); ?>
出力を見てください:
1
これは、使用が成功したことを意味します。
関連チュートリアル: PHP ビデオ チュートリアル
以上がPHP は外部呼び出しクラスのプライベート プロパティを学習しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。