PHP Array açılan nesne

3 Cevap php

Ben kullanıcı tanımlı sınıfın bir nesne bir dizi var varsayalım. Nasıl PHP dizinin öğeleri ayıklamak bilmek istiyordu.

// 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;
}

Java ArrayList nesneleri ayıklanması ederken java yapmak için kullanılan nasıl Thats, dolayısıyla PHP yol benzer olabilir düşündüm. Herkes bunu açıklayabilir misiniz.

3 Cevap

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

Neden bu için isleminden gerekiyor?

PHP dinamik yazılmış bir dildir. Çoğu durumda, döküm için bir ihtiyaç vardır.

Bir Kullanıcıya döküm imkansız: type juggling and casting PHP'nin belgelerine bakın.

Bu örnek yazdırmak "$user is a object (User)" dört kez olur.

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

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

    echo "\n";
}

Örnek Eclipse PDT Kod Tamamlama için nesnenin türünü belirlemek için güzel olurdu. aksi takdirde dizi oluşturulmuş ve hangi nesneler içine koymak ve sonra eğer yöntemler / özellikler mevcut olduğunu görmek için) fonksiyonları (yeni theObject oluşturmak kullanılabilir (ya da geçici olduğunu görmek için sınıf dosyasına bakmak sıkışmış Backtracing vardır o nesnenin ne tür biliyorum. diğer zamanlar) birçok nesnelerin kendilerine bu diziler ve nesneler oluşturmak işlevleri çağırmak gibi kolay olabilir, bu yüzden bu diziler nasıl yaptığımı görmek için takip etmeleride olmayabilir. Heard birkaç diğer IDE belki PhpED gibi daha iyi türünü belirlemek mümkün olabilir?