Ho utilizzato gli array per archiviare i campi correlati per un lungo periodo. Se volevo avere campi utente connessi, ho usato:Cosa è meglio stdClass o array (oggetto) per memorizzare i dati correlati?
$user = array(
'id' => 27
'name' => 'Pepe'
);
Ma ultimamente, ho lavorato molto con gli oggetti, e mi piace di più per utilizzare $ user-> id, invece di $ user [' id '].
La mia domanda: Per raggiungere uno stile orientato agli oggetti, è possibile utilizzare stdClass:
$user = new stdClass();
$user->id = 27;
$user->name = 'Pepe';
o la fusione tra una vasta gamma
$user = (object) array(
'id' => 27
, 'name' => 'Pepe'
);
è uno di loro migliore rispetto agli altri, in ordine di performance e stile, oppure puoi usare quello che vuoi indistintamente?
Grazie!
Aggiornamento: Sono d'accordo con tutti i commenti, questo non è OOP a tutti, è solo di avere i dati relativi raggruppati in una struttura. Il mio esempio $ utente non è il migliore, perché è un tipico esempio di utilizzo di classi con metodo, proprietà, blablabla ... Ho chiesto perché ho un sacco di strutture di configurazione, come "initTable", e voglio qualcosa del tipo:
$table => page => init => 1
=> end => 25
sort => field => name
=> order => asc
e così via, e io voglio sapere che cosa è meglio per ottenere la pagina init:
$table->page->init **OR** $table['page']['init']
Istintivamente, direi che creare un oggetto è meglio che creare una matrice e lanciarla su un oggetto in termini di utilizzo della memoria e prestazioni generali. – mhafellner
solo perché qualcosa è in un oggetto, non significa che usi OOP. – Prisoner
Se si utilizza un oggetto tipizzato effettivo, l'IDE può eseguire il controllo dell'intelligenza/correttezza. Soggettivamente questo è molto più utile delle differenze microscopiche tra queste scelte. – DCoder