কম্পিউটার

পিএইচপি অবজেক্ট পুনরাবৃত্তি


পরিচয়

পিএইচপি 5 থেকে, একটি বস্তুর সমস্ত দৃশ্যমান আইটেমের তালিকার মাধ্যমে পুনরাবৃত্তি করা সম্ভব। foreach ব্যবহার করে পুনরাবৃত্তি করা যেতে পারে লুপ সেইসাথে ইটারেটর ইন্টারফেস. এছাড়াও IteratorAggregate আছে PHP-তে ইন্টারফেস, যা এই উদ্দেশ্যে ব্যবহার করা যেতে পারে

ফোরচ লুপ ব্যবহার করা

উদাহরণ

<?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::key — বর্তমান উপাদানের কী ফেরত দিন

পুনরাবৃত্তিকারী::পরবর্তী — পরবর্তী উপাদানে এগিয়ে যান

ইটারেটার::রিওয়াইন্ড — ইটারেটরকে প্রথম এলিমেন্টে রিওয়াইন্ড করুন

Iterator::valid — বর্তমান অবস্থান বৈধ কিনা তা পরীক্ষা করে

নিম্নলিখিত উদাহরণটি ইটারেটর ইন্টারফেস

প্রয়োগ করে বস্তুর পুনরাবৃত্তি দেখায়

উদাহরণ

<?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-তে date_timezone_set() ফাংশন

  2. PHP-তে date_modify() ফাংশন

  3. PHP-তে method_exists() ফাংশন

  4. PHP-তে get_object_vars() ফাংশন