Gumbo es la derecha, aquí es un ejemplo de trabajo:
<?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);
devuelve:
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!"
}
edición: Vale, he encontrado algo relacionado en el manual de PHP en esto:
Si un objeto se convierte en un objeto, no se modifica. Si un valor de cualquier otro tipo se convierte en un objeto, se crea una nueva instancia de la clase incorporada stdClass. Si el valor era NULL, la nueva instancia estará vacía. (source)
Así, utilizando la sintaxis ->
convierte la cosa en un objeto. En el ejemplo anterior $obj
es nulo, por lo que se crea una nueva instancia vacía y se establece el miembro foobar
.
Al observar el ejemplo de matriz, arr[]
primero crea un nuevo elemento de matriz (vacío), que luego se convierte en un objeto vacío debido a la sintaxis ->
y se establece la variable de miembro.
¿Algo más específico? ¿Qué parte de la sintaxis no has visto? –
Supongo que es el Phonenumbers [] -> número de pieza – Htbaa
¿Esto no arroja un error? : o ¿Podría ofrecer un poco más del código, especialmente la definición de 'Phonenumbers' en la clase? – poke