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

PHP创建同一对象的两个或多个实例,是否可以从第一个对象检索信息?,php,class,instance,Php,Class,Instance,我有一个小项目正在进行中,因为我不是OOP的高手,所以我来这里寻求一些帮助。 我有一门课叫“truckinfo” 现在我从其他地方获得了诸如车牌或供应商之类的信息,然后将卡车显示在列表中。 我计划创建类似这样的列表 for($i = 0; $i < 3; $i++){ $truck = new truckinfo(); $truck->plate = "abc" . $i; $truck->truckcount = $i + 5;

我有一个小项目正在进行中,因为我不是OOP的高手,所以我来这里寻求一些帮助。 我有一门课叫“truckinfo”

现在我从其他地方获得了诸如车牌或供应商之类的信息,然后将卡车显示在列表中。 我计划创建类似这样的列表

for($i = 0; $i < 3; $i++){
    $truck = new truckinfo();
    $truck->plate =  "abc" . $i;
    $truck->truckcount = $i + 5;
    echo $truck->truckcount;
}
($i=0;$i<3;$i++)的
{
$truck=新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
$trucks=array();
对于($i=0;$i<3;$i++){
$trucks[$i]=新truckinfo();
$trucks[$i]>plate=“abc”。$i;
$trucks[$i]->truckcount=$i+5;
echo$trucks[$i]>truckcount;
}
echo$trucks[0]->truckcount//例子

使用这一小部分逻辑,您没有保存对第一个truck对象引用的变量,因此(可能是通过一些我不知道的诡计)无法获取该对象。通常在基础课程中,您会被介绍到所谓的“管理”类,这些类构造某种类型的对象,并在数组(或其他数据结构)中跟踪它们,从而允许您搜索它们等。特别是如果您开始致力于一个小的基本CRUD应用程序,将该职责分组到一个单独的类中是很好的。 通过这种方式,您可以管理对象的标识,以及更干净地获取并返回唯一标识它的所需对象

让我补充一下,我假设在您的示例中,将它们存储在关联数组中为:
$trucks[$truck->plate]=$truck
创建一个车牌到truck info对象的小映射就足够了。然后,您可以通过车牌直接访问和检索它们

$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;
$trucks=[];
对于($i=0;$i<3;$i++){
$truck=新truckinfo();
$truck->plate=“abc”$i;
$truck->truckcount=$i+5;
echo$truck->truckcount;
$trucks[$truck->plate]=$truck
}
echo$trucks['abc0']->truckcount;

目前,每次循环时都会覆盖$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;