合并两个PHP标签

时间:2019-02-02 21:46:05

标签: php

我想将两个不同的PHP标记转换为一个PHP标记。这听起来有些怪异,但最近我发现了一个类似的问题,并用正确的标记回答了。

我找不到当前丢失的地址。

我的问题:

例如;

$gates = array('t1','t2','t3',t4','t5');

$openGates->$gates合并。

结果:

$openGates->t1;或t2,t3。

如果我没记错的话,我以前发现的问题的答案是;

$openGates->{$gates};这样。我不确定

我该怎么做?

2 个答案:

答案 0 :(得分:0)

这不是为新手程序员...

简单

起初:

$gates = array('t1','t2','t3','t4','t5');

是数组

$openGates->

这是类实例。顺便说一句。您可以检索类似$className->varName

的类实例var

您不能简单地合并数组和类实例。但是您可以循环创建新的类实例变量。

foreach($gates as $gateKey=>$gateVal) {
    $openGates->$gatesVal = NULL;
}

但是我认为是这样,结果应该是这样的:

 $gates = array('t1'=>'opened','t2'=>'closed','t3'=>'closed','t4'=>'opened','t5'=>'opened');
foreach($gates as $gateKey=>$gateVal) {
    $openGates->$gateKey = $gateVal;
}

echo $openGates->t1;

// or

foreach($gates as $key=>$val) {
    echo $openGates->$key.PHP_EOL;
}

您可以简单地设置$openGates->gates = $gates;并将其命名为echo $openGates->gates['t1'];

答案 1 :(得分:0)

您似乎在将对象与数组混淆。数组仅包含数据,除非您也使用键创建它们。如:

$gates = array('t1'=>true,'t2'=>false,'t3'=>"maybe",'t4'=>0,'t5'=>50);

Matthew Page是正确的,因为您应该查找PHP OOP来寻求解决方案。

话虽如此,您可以将数组转换为具有键和值的对象:

$gates = (object) array('t1'=>true,'t2'=>false,'t3'=>"maybe",'t4'=>0,'t5'=>50);

$openGates = (object) $gates;

这将允许您以演示的方式访问对象的“属性”:

例如,

echo $openGates->t1;->运算符仅适用于对象,它们是类的实例,而不是数组。

如果你投你的数组类型的对象的,请确保您有两个键和值。