কম্পিউটার টিউটোরিয়াল

PHP অবজেক্ট ইটারেশন


ভূমিকা

PHP 5 থেকে, একটি অবজেক্টের সকল দৃশ্যমান আইটেমের তালিকা atravérse করা সম্ভব। ইটারেশন foreach লুপ এবং ইটারেটর ইন্টারফেস ব্যবহার করে করা যায়। PHP-তে IteratorAggregate ইন্টারফেসও আছে, যা এই উদ্দেশ্যে ব্যবহার করা যায়।

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

Iterator ইন্টারফেস ব্যবহার

এই ইন্টারফেস নিচের অ্যাবস্ট্রাক্ট মেথডগুলিকে ডিফাইন করে যা নিচের উদাহরণে ইমপ্লিমেন্ট করা হবে:

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

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

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

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