2009-02-12 7 views
1

Supposons que j'ai un tableau d'objets de classe définie par l'utilisateur. Je voulais savoir comment extraire les éléments du tableau en PHP.Objet d'extraction de tableau PHP

// class definition 
class User 
{ 
public $fname; 
public $lname; 
} 

// array of objects of the class defined above 
$objUser1 = new User(): 
$objUser2 = new User(): 
$objUser3 = new User(): 
$objUser4 = new User(): 

$alUser = array(); 
$alUser[] = $objUser1; 
$alUser[] = $objUser2; 
$alUser[] = $objUser3; 
$alUser[] = $objUser4; 


// trying to iterate and extract values using typcasting - this does not work, what is the alternative. 
foreach($alUser as $user) 
{ 
$obj = (User) $user; // gives error - unexpected $user; 
} 

est comment je l'habitude de faire en Java lors de l'extraction des objets de Java ArrayList, pensé donc la façon dont PHP pourrait être similaire. Quelqu'un peut-il l'expliquer.

Répondre

8
foreach ($alUser as $user) { 
    $obj = $user; 
} 

Pourquoi avez-vous besoin de typecasting pour cela?

3

PHP est un langage typé dynamiquement. Il n'y a pas besoin de lancer dans la plupart des cas.

Il est impossible de convertir un utilisateur en un utilisateur: voir la documentation de PHP au type juggling and casting.

Cet exemple afficherait "$user is a object (User)" quatre fois.

foreach($alUser as $user) { 
    echo '$user is a ' . get_type($user); 

    if(is_object($user)) { 
     echo ' (' . get_class($user) . ')'; 

    echo "\n"; 
} 
0

Ce serait bien par exemple Eclipse PDT de déterminer le type d'objet pour l'achèvement du code. sinon vous êtes bloqué backtracing, où le tableau a été créé et quels objets y ont été placés, puis regardez le fichier de classe pour voir quelles fonctions sont disponibles (ou temp créez un nouveau theObject() pour voir quelles méthodes/propriétés sont disponibles si vous savoir quel type d'objet il est, d'autres fois peuvent ne pas être aussi faciles si de nombreux objets appellent des fonctions qui créent ces tableaux et objets, donc il faut faire un backtrace pour voir comment ces tableaux ont été faits). Entendu quelques autres IDE peut-être en mesure de déterminer le type mieux comme phpEd éventuellement?