배열과 마찬가지로 stdclasses에 요소를 추가 할 수 있습니까?어떻게 PHP에서 std 클래스를 조작 할 수 있습니까?
Array (
[0] => item 1
[1] => item 2
)
Stdclass (
[0] => item 1
[1] => item 2
)
일반적으로 배열에 비해 개체를 조작하기가 더 어렵습니까? 우리는 등등을 사용하기 위해 많은 배열 함수를 가지고 있기 때문에
배열과 마찬가지로 stdclasses에 요소를 추가 할 수 있습니까?어떻게 PHP에서 std 클래스를 조작 할 수 있습니까?
Array (
[0] => item 1
[1] => item 2
)
Stdclass (
[0] => item 1
[1] => item 2
)
일반적으로 배열에 비해 개체를 조작하기가 더 어렵습니까? 우리는 등등을 사용하기 위해 많은 배열 함수를 가지고 있기 때문에
물론, 당신은 ...
$Object = new StdClass();
$Object->item1 = 1;
$Object->item2 = 2;
를 새로운 요소를 추가 할 수 있습니다.
또한 당신은 ... 다시 반대하고 배열에서 이동
$array = array('item1', 'item2');
$Object = (object)$array;
var_dump($object);
$array = (array)$Object;
var_dump($array);
정보를 제공해 주셔서 감사합니다! 그리고 나머지도 :) – resting
예. 그러나 숫자로 색인되지 않았습니다. 좀 더 복잡한 시나리오를 원하는 경우
$a = new stdclass();
$a->foo = 'item 1';
$a->bar = 'item 2';
$a->goobar = array('item1', 'item2');
var_dump($a);
는 ArrayAccess 및 ArrayObject 봐.
음, documentation 상태는 :
이의를 타입 캐스팅에 의해 만들어진.
이와 같이 배열 기능을 사용하여 stdClass 인스턴스를 작동 시키려면 (배열)과 (오브젝트) 사이를왔다 갔다 할 수 있습니다. 당신이 PHP SPL ArrayIterator 또는 RecursiveArrayIterator를 사용해야합니다 배열로 객체를 반복 할 경우
를 타입 캐스팅을 그것은 조작하기 더 어려워 없습니다 사용할 수 있습니다. count와 array_search가 객체에서 작동하지 않는다고 말하면됩니다.
배열 및 객체는 모두 당신이 성취하고자하는 것에 따라 그 이점이 있습니다.
http://php.net 설명서에는 어떤 데이터 형식을 어떤 기능에 전달할 수 있는지 설명되어 있습니다.
Stdclass는 Java Object의 빈 클래스입니다. –