ArrayObject در برنامه نویسی شی گرایی

یکی دیگه از دستورات جدید در پی اچ پی پنج
َArrayObject
هست
تبدیل آرایه به شی
این کلاس اجازه میده که با اشیا مانند آرایه رفتار کنیم
append()
متدی است که به آخر شی مقداری اضافه میکند:

$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (5) {
[۰]=>
string(5) "first"
[۱]=>
string(6) "second"
[۲]=>
string(5) "third"
[۳]=>
string(6) "fourth"
[۴]=>
array(2) {
[۰]=>
string(4) "five"
[۱]=>
string(3) "six"
}
}

getIterator()
این متد یک شی ایتراتور ایجاد میکنه و شما میتونین از تکرار کننده استفاده کنین
این متد برای دریافت تکرار کننده شی از هر آرایه ای مفید است


$array = array('1' => 'one',
'۲' => 'two',
'۳' => 'three');
$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();
while($iterator->valid()) {
echo $iterator->key() . ' => ' . $iterator->current() . "\n";
$iterator->next();
}
خروجی
۱ => one
۲ => two
۳ => three

offsetExists()

این متد میتونه تشخیص بده که آفست در شی وجود داره یا نه

$arrayobj = new ArrayObject(array(‘zero’, ‘one’, ‘example’=>’e.g.’));
var_dump($arrayobj->offsetExists(1)); // true

offsetGet()
این متدبرای نمایش مقدار یک افست استفاده میشه
آفست میشه همون ایندکس تو آرایه


$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
خروجی
int(7)
string(4) "e.g."
bool(false)

offsetSet()
مثل آفست گت با این تفاوت که برای ست کردن ایندکس استفاده میشه

class Example {
public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);
$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (3) {
["property"]=>
string(11) "prop:public"
[۴]=>
string(4) "four"
["group"]=>
array(2) {
[۰]=>
string(2) "g1"
[۱]=>
string(2) "g2"
}
}
object(ArrayObject)#3 (3) {
[۰]=>
string(4) "zero"
[۱]=>
string(3) "one"
[۲]=>
string(4) "last"
}

offsetUnset()
این متد میتونه المنتی از ایندکس را خالی کنه در واقع حذف کنه


$arrayobj->offsetUnset(2);
var_dump($arrayobj);
خروجی
object(ArrayObject)#1 (1) {
[۰]=>
string(4) “zero”
}

مثال

$users = new ArrayObject(array("hasin" => "hasin@pageflakes.com",
"afif" => "mayflower@phpxperts.net",
"ayesha" => "florence@pageflakes.net"));
$iterator = $users->getIterator();
while ($iterator->valid()) {
echo "{$iterator->key()}'s Email address is
{$iterator->current()}<br/>";
$iterator->next();
}
خروجی
hasin's Email address is hasin@pageflakes.com
afif's Email address is mayflower@phpxperts.net
ayesha's Email address is florence@pageflakes.net

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *