PHP objeto extrair matriz
Pergunta
Suponha que eu tenho uma matriz de uma objetos da classe definida pelo usuário. Queria saber como faço para extrair os elementos do array em 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;
}
Isso é como eu costumava fazer em java ao extrair objetos do Java ArrayList, daí pensei o caminho PHP pode ser semelhante. Alguém pode explicar isso.
Solução
foreach ($alUser as $user) {
$obj = $user;
}
Por que você precisa typecasting para isso?
Outras dicas
PHP é uma linguagem de tipagem dinâmica. Não há necessidade de elenco na maioria dos casos.
É impossível fundido a um usuário: consulte a documentação do PHP em tipo de malabarismo e lançando .
Este exemplo iria imprimir "$user is a object (User)
" quatro vezes.
foreach($alUser as $user) {
echo '$user is a ' . get_type($user);
if(is_object($user)) {
echo ' (' . get_class($user) . ')';
echo "\n";
}
Seria bom por exemplo Eclipse PDT para determinar o tipo de objeto para completar de código. caso contrário, você são backtracing preso, onde a matriz foi criado e quais objetos foram colocados em-lo e em seguida olhar para o arquivo de classe para ver o que estão disponíveis funções (ou temporário criar uma nova theObject () para ver o que está disponível se você métodos / propriedades saber que tipo de objeto ele é. outras vezes pode não ser tão fácil se muitos objetos chamar funções que criam essas matrizes e objetos neles, então tem que backtrace para ver como essas matrizes feitas). Ouviu algumas outras do IDE pode ser capaz de determinar o tipo melhor como PHPEd possivelmente?