PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPオブジェクトの反復


はじめに

PHP 5以降では、オブジェクトのすべての表示可能なアイテムのリストを反復処理することができます。反復はforeachを使用して実行できます ループとイテレータ インターフェース。 IteratorAggregateもあります この目的に使用できるPHPのインターフェース

foreachループの使用

<?php
class myclass{
   private $var;
   protected $var1;
   public $x, $y, $z;
   public function __construct(){
      $this->var="private variable";
      $this->var1=TRUE;
      $this->x=100;
      $this->y=200;
      $this->z=300;
   }
   public function iterate(){
      foreach ($this as $key => $value) {
         print "$key => $value\n";
      }
   }
}
$obj = new myclass();
foreach($obj as $key => $value) {
   print "$key => $value\n";
}
echo "\n";
$obj->iterate();
?>

出力

出力は以下のとおりです-

x => 100
y => 200
z => 300

var => private variable
var1 => 1
x => 100
y => 200
z => 300

イテレータインターフェイスの使用

このインターフェースは、次の例で実装される次の抽象メソッドを定義します

abstract public current ( void ) : mixed
abstract public key ( void ) : scalar
abstract public next ( void ) : void
abstract public rewind ( void ) : void
abstract public valid ( void ) : bool

Iterator ::current —現在の要素を返します

Iterator ::key —現在の要素のキーを返します

Iterator ::next —次の要素に進みます

Iterator ::rewind —イテレータを最初の要素に巻き戻します

Iterator ::valid —現在の位置が有効かどうかを確認します

次の例は、Iteratorインターフェースを実装することによるオブジェクトの反復を示しています

<?php
class myclass implements Iterator{
   private $arr = array('a','b','c');
   public function rewind(){
      echo "rewinding\n";
      reset($this->arr);
   }
   public function current(){
      $var = current($this->arr);
      echo "current: $var\n";
      return $var;
   }
   public function key() {
      $var = key($this->arr);
      echo "key: $var\n";
      return $var;
   }
   public function next() {
      $var = next($this->arr);
      echo "next: $var\n";
      return $var;
   }
   public function valid(){
      $key = key($this->arr);
      $var = ($key !== NULL && $key !== FALSE);
      echo "valid: $var\n";
      return $var;
   }
}
$obj = new myclass();
foreach ($obj as $k => $v) {
   print "$k: $v\n";
}
?>

出力

上記のコードは次の結果を生成します-

rewinding
valid: 1
current: a
key: 0
0: a
next: b
valid: 1
current: b
key: 1
1: b
next: c
valid: 1
current: c
key: 2
2: c
next:
valid:

  1. PHPのmethod_exists()関数

    method_exists()関数は、クラスメソッドが存在するかどうかを確認します。 構文 method_exists(object, name_of_method) パラメータ オブジェクト −オブジェクトインスタンスまたはクラス名 name_of_method −メソッド名 戻る method_exists()関数は、method_nameで指定されたメソッドが指定されたオブジェクトに対して定義されている場合はTRUEを返し、それ以外の場合はFALSEを返します。 例 以下は例です- <?php $directory = new Directory('

  2. PHPのget_object_vars()関数

    get_object_var()関数は、指定されたオブジェクトのプロパティを取得します。指定されたオブジェクトに対して定義されたオブジェクトプロパティの連想配列を返します。 構文 get_object_vars(object) パラメータ オブジェクト −オブジェクトインスタンス。 戻る get_object_var()関数は、指定されたオブジェクトに対して定義されたオブジェクトプロパティの連想配列を返します。プロパティに値が割り当てられていない場合は、NULL値で返されます。 例 以下は例です- <?php    class Point2D { &nb