Questo probabilmente è piuttosto semplice, ma non sono stato in grado di capire come formulare la domanda per Google, quindi ecco qui:PHP: dichiarare una variabile di classe ad essere un oggetto stdClass
Quindi, faccio spesso qualcosa di simile ...
class foo {
private $bar = array();
}
... per impostare alcune proprietà di classe come array. Tuttavia, mi piacerebbe fare una proprietà privata di un oggetto, invece, qualcosa di simile:
class foo {
private $bar = new stdClass();
}
ho provato diverse varianti di questo e nessuno di loro ha funzionato. Può essere fatto? Per i punti bonus puoi assegnare una proprietà privata come qualsiasi altra classe di oggetti?
Grazie!
Ok, questo funziona. Tuttavia, cosa succede se voglio che questa classe sia estensibile da altre classi che potrebbero sovrascrivere il costruttore? C'è un modo per assicurarsi che $ bar rimanga un oggetto? – Andrew
vedere le mie modifiche di note ... e anche rivedere il Manuale di classi e oggetti: http://php.net/manual/en/language.oop5.php – prodigitalson
Grazie per l'esempio esteso, vedo come l'hai fatto. Vorrei che tu potessi semplicemente dichiarare qualcosa come un oggetto nel modo in cui puoi dichiararlo come un array. Ciò mi permetterebbe di "infallibilizzare" il codice meglio: non mi piace chiedere agli utenti di chiamare il costruttore genitore perché sembrano sempre dimenticare e non essere in grado di capire perché le cose non funzionano. Tuttavia, a volte devi fare quello che devi fare. Grazie per l'aiuto!! – Andrew