ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクトを各オブジェクトで使用できるようにし、プロパティを Private で変更します。

PHP オブジェクトを各オブジェクトで使用できるようにし、プロパティを Private で変更します。

WBOY
WBOYオリジナル
2016-07-25 09:06:33969ブラウズ
退屈したときに遊んでください。
オブジェクトの走査は、実際にはオブジェクト内の特定の配列型属性を走査するだけです。
PHP5 以降では、直接 foreach することはできますが、クラスのプライベート メンバーにはアクセスできません。
オブジェクト指向の原則では、クラスのメンバーに外部から直接アクセスすることもできません。
  1. /*
  2. * @class Sample
  3. * @remark トラバーサル オブジェクトは実際には変数オブジェクト内の単なる配列です。オブジェクトをトラバースできるようにするには、反復子インターフェイスを実装する必要があります
  4. * /
  5. class サンプルは反復子を実装します
  6. {
  7. private $v1 = '123';
  8. private $v2 = 'abc';
  9. private $v3 = array( 1, 2, 3 );
  10. public function rewind()
  11. {
  12. / *
  13. * get_object_vars 機能を確認するには、この関数のマニュアルを確認してください
  14. * ここで、Sample オブジェクトは、動的に生成された属性 $data の代わりに、定義された属性を配列に実装します。
  15. * グループを $data に割り当てます
  16. * /
  17. $this->data = get_object_vars ( $this );
  18. /*
  19. * $data の最初の要素にカーソルを置きます
  20. */
  21. restart( $this->data ); }
  22. public function current() { return current( $this->data ); }
  23. public function key() { return key( $this->data ); }
  24. public function next() { return next( $this->data ); }
  25. public function valid() { return ( $this->current() !== false ); }
  26. }
  27. $s = new Sample();
  28. foreach( $s as $k=>$v ){ echo $k.'='.$v.'
    ';}
コードをコピー

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