Esiste un modo per ottenere le proprietà di classe e convertirlo utilizzando la trasmissione (array)
.Esiste un modo per convertire un array in proprietà di classe?
$user = (array) get_object_vars($userObject)
Ma mi chiedo, non ho trovato alcun metodo diretto per convertire l'array in proprietà di classe.
Supponiamo che io ho classe utente con implementazione seguente:
class User
{
private $id = 0;
private $fname = '';
private $lname = '';
private $username = '';
}
Ho seguente array:
$user = array(
'id'=> 2,
'fname' => 'FirstName',
'lname' => 'LastName',
'username' => 'UserName'
);
Sto cercando un tipo di getto, proprio come abbiamo (object)
. Il problema è (object)
tipo cast converte array in oggetto stdClass
, ma qui voglio che il mio array venga convertito nella mia classe specificata.
L'esempio deve essere dichiarato come: (.. La mia ipotesi, che PHP dovrebbe avere questo o potrebbe già avere qualche cosa come questa e io non so)
$userobj = (object User) $user;
E il risultato di sintassi di cui sopra dovrebbe essere proprio come:
$userobj->id = $user['id'];
$userobj->fname = $user['fname'];
$userobj->lname = $user['lname'];
$userobj->username = $user['username'];
Voglio sapere se esiste un metodo diretto, non una logica di mappatura. Stai cercando un trucco a livello di lingua.
Nota: Sono a conoscenza dell'uso di foreach
per eseguire l'operazione in alto. Sto cercando un metodo diretto, se disponibile in PHP, ma non ancora messo a fuoco (potrebbe essere!).
seguito non risolve la mia domanda: Convert/cast an stdClass object to another class
Dovrete scrivere il proprio metodo personalizzato per farlo. Il motivo è che l'oggetto non saprà come gestire proprietà o proprietà diverse che non sono state definite. Qualcosa come $ object-> load ($ array). –
possibile duplicato di [Conversione di un array PHP in variabili di classe] (http://stackoverflow.com/questions/2715465/converting-a-php-array-to-class-variables) –
possibile duplicato di [Convertire/cast di stdClass oggetto a un'altra classe] (http://stackoverflow.com/questions/3243900/convert-cast-an-stdclass-object-to-another-class) – Richard