PHP 创建同一对象的 2 个或更多实例,是否可以从第一个对象检索信息?

PHP Creating 2 or more instances of the same object, is it possible to retrieve information from the first object?

我有一个小项目正在进行,因为我不是最擅长 OOP 的,所以我来这里寻求帮助。 我有一个名为“truckinfo”的 class

class truckinfo
{
    public $vendor;
    public $truckcount;
    public $plate;
}

现在我从其他地方获取车牌或供应商等信息,然后将卡车显示在列表中。 我计划像这样创建列表

for($i = 0; $i < 3; $i++){
    $truck = new truckinfo();
    $truck->plate =  "abc" . $i;
    $truck->truckcount = $i + 5;
    echo $truck->truckcount;
}

我的问题是,是否可以在显示所有卡车后从第一辆卡车(在本例中为车牌为“abc0”的卡车)获取信息,或者我能否仅获取最新进入的卡车的信息循环?

提前致谢。

您可以简单地创建任意数量的对象实例。例如。您可以将它们保存在一个数组中以供以后直接访问。

$trucks = array();

for($i = 0; $i < 3; $i++){
   $trucks[$i] = new truckinfo();
   $trucks[$i]->plate =  "abc" . $i;
   $trucks[$i]->truckcount = $i + 5;
   echo $trucks[$i]->truckcount;
}

echo $trucks[0]->truckcount; //example

使用这一小块逻辑,您没有保存对第一个卡车对象的引用的变量,因此(可能是我不知道的一些诡计)无法获得该对象。通常在基础课程中,您会了解到所谓的 'management' classes,它们构造某种对象并在数组(或其他数据结构)中跟踪它们,允许您搜索它们等。尤其是当您开始开发一个小型的基本 CRUD 应用程序时,最好将该职责分组到一个单独的 class 中。 通过这种方式,您可以管理对象的标识,并更清晰地获取和 return 唯一标识它的所需对象。

让我补充一点,我假设您的示例将它们存储在关联数组中:$trucks[$truck->plate] = $truck 为您自己创建一个车牌到卡车信息对象的小映射就足够了。然后就可以直接通过车牌取回了。

$trucks = [];
for($i = 0; $i < 3; $i++){
    $truck = new truckinfo();
    $truck->plate =  "abc" . $i;
    $truck->truckcount = $i + 5;
    echo $truck->truckcount;

    $trucks[$truck->plate] = $truck
}

echo $trucks['abc0']->truckcount;