یکی دیگه از دستورات جدید در پی اچ پی پنج
َ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 = new ArrayObject(array(0=>’zero’,2=>’two’));
$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


آموزش فریم ورک Yii منبع : آموزش فریم ورک Yii |ArrayObject در برنامه نویسی شی گرایی
برچسب ها : arrayobj ,arrayobject ,string ,array ,iterator ,dump ,dump arrayobj ,arrayobject array ,email address ,arrayobj offsetset ,arrayobj خروجیobject ,dump arrayobj خروجیobject ,arrayobj خروجیobject arrayobject ,dump arrayobj offsetexists ,dump a