1

假设我有一个用户定义类的对象数组。想知道如何在 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;
}

这就是我在从 Java ArrayList 中提取对象时在 java 中所做的事情,因此认为 PHP 的方式可能是相似的。谁能解释一下。

4

3 回答 3

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

为什么需要为此进行类型转换?

于 2009-02-12T21:45:41.180 回答
3

PHP 是一种动态类型的语言。大多数情况下不需要强制转换。

无法强制转换为用户:请参阅 PHP 的关于类型杂耍和强制转换的文档。

此示例将打印“ $user is a object (User)”四次。

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

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

    echo "\n";
}
于 2009-02-12T21:55:43.760 回答
0

例如 Eclipse PDT 确定代码完成对象的类型会很好。否则你会陷入回溯,数组的创建位置以及放入其中的对象,然后查看类文件以查看可用的函数(或临时创建一个新的 theObject() 以查看可用的方法/属性,如果你知道它是什么类型的对象。如果许多对象调用在其中创建这些数组和对象的函数,其他时候可能就不那么容易了,因此必须回溯以查看这些数组是如何生成的)。听说其他一些 IDE 可能能够像 phpEd 那样更好地确定类型?

于 2009-11-02T19:08:27.633 回答