Bamya doğru, burada bir çalışma örneği:
<?php
class Test
{
public $arr = array();
public $obj = null;
}
$a = new Test();
$a->arr[]->foo = 1234;
$a->arr[]->bar = 'test';
var_dump( $a->arr );
// even more weird on null objects
$a->obj->foobar = 'obj was null!';
var_dump( $a->obj );
döner:
array(2) {
[0]=>
object(stdClass)#2 (1) {
["foo"]=>
int(1234)
}
[1]=>
object(stdClass)#3 (1) {
["bar"]=>
string(4) "test"
}
}
object(stdClass)#4 (1) {
["foobar"]=>
string(13) "obj was null!"
}
edit: Tamam, ben bu konuda php kılavuzunda ilgili bir şey buldum:
Bir amacı, bir nesneye dönüştürülür, bu değiştirilmez. Başka tür bir değer, bir nesneye dönüştürülür ise, stdClass yerleşik sınıf yeni bir örneği oluşturulur. Değer NULL ise, yeni örnek boş olacaktır. (source) em>
Yani ->
sözdizimini kullanarak bir nesnenin içine thing dönüştürür. Yukarıdaki örnekte $obj
böylece yeni, boş bir örneği oluşturulur null, ve foobar
üye ayarlanır.
Dizi örneğe bakıldığında, arr[]
ilk önce çünkü ->
sözdizimi ve üye değişkeni ayarlanır boş bir nesneye dönüştürülür yeni (boş) dizi elemanı oluşturur.