<?php
$data = $likeArray->getArrayCopy();
?>
will NOT be magically called if you cast to array. Although I've expected it.
<?php
$nothing = (array)$likeArray;
?>
Here, $data != $nothing.
PHP.mk документација
ArrayObject::getArrayCopy
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
arrayobject.getarraycopy.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
arrayobject.getarraycopy.php
ArrayObject::getArrayCopy
Референца за `arrayobject.getarraycopy.php` со подобрена типографија и навигација.
ArrayObject::getArrayCopy
класата mysqli_driver
ArrayObject::getArrayCopy — Креира копија на ArrayObject
Параметри
Оваа функција нема параметри.
Вратени вредности
Враќа копија од низата. Кога ArrayObject се однесува на објект, ќе се врати низа од својствата на тој објект.
Примери
Пример #1 ArrayObject::getArrayCopy() example
<?php
// Array of available fruits
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;
// create a copy of the array
$copy = $fruitsArrayObject->getArrayCopy();
var_dump($copy);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(5) {
["lemons"]=>
int(1)
["oranges"]=>
int(4)
["bananas"]=>
int(5)
["apples"]=>
int(10)
["pears"]=>
int(4)
}
Белешки од корисници 5 белешки
spidgorny на gmail.com ¶
пред 9 години
Иво фон Путцер ¶
пред 14 години
If you did something like this to make your constructor multidimensional capable you will have some trouble using getArrayCopy to get a plain array straight out of the method:
<?php
public function __construct( $array = array(), $flags = 2 )
{
// let’s give the objects the right and not the inherited name
$class = get_class($this);
foreach($array as $offset => $value)
$this->offsetSet($offset, is_array($value) ? new $class($value) : $value);
$this->setFlags($flags);
}
?>
That’s the way I solved it:
<?php
public function getArray($recursion = false)
{
// just in case the object might be multidimensional
if ( $this === true)
return $this->getArrayCopy();
return array_map( function($item){
return is_object($item) ? $item->getArray(true) : $item;
}, $this->getArrayCopy() );
}
?>
Hope this was useful!
jlshor на buffalo dot edu ¶
пред 9 години
Is there a difference between casting to an array and using this function?
For instance, if we have:
$arrayObject = new ArrayObject([1, 2, 3]);
Is there a difference between these:
$array = (array) $arrayObject;
vs
$array = $arrayObject->getArrayCopy();
If not, is there any scenario where they would produce different results, or do they produce the result in different ways?
php на webflips dot net ¶
12 години пред
"When the ArrayObject refers to an object an array of the public properties of that object will be returned."
This description does not seem to be right:
<?php
class A
{
public $var = 'var';
protected $foo = 'foo';
private $bar = 'bar';
}
$o = new ArrayObject(new A());
var_dump($o->getArrayCopy());
/*
Dumps:
array(3) {
["var"]=>
string(3) "var"
["*foo"]=>
string(3) "foo"
["Abar"]=>
string(3) "bar"
}
*/
?>
So it does not only include the public properties.