Gumbo è giusto, ecco un esempio di lavoro:
<?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);
rendimenti:
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: Va bene, ho trovato qualcosa legato nel manuale di PHP su questo:
Se un oggetto viene convertito in un oggetto, non viene modificato. Se un valore di qualsiasi altro tipo viene convertito in un oggetto, viene creata una nuova istanza della classe integrata stdClass. Se il valore era NULL, la nuova istanza sarà vuota. (source)
Quindi, utilizzando la sintassi ->
converte il cosa in un oggetto. Nell'esempio sopra $obj
è null, quindi viene creata una nuova istanza vuota e viene impostato il membro foobar
.
Osservando l'esempio di matrice, arr[]
crea innanzitutto un nuovo elemento di matrice (vuoto), che viene quindi convertito in un oggetto vuoto a causa della sintassi ->
e la variabile membro è impostata.
Qualcosa di più specifico? Quale parte della sintassi non hai visto? –
Suppongo che sia il Phonenumbers [] -> parte del numero di telefono – Htbaa
Questo in realtà non genera un errore? : Potresti forse offrire un po 'di più del codice, in particolare la definizione di "Phonenumbers" nella classe? – poke