单箭头与双箭头混合搭配

时间:2016-03-18 18:21:22

标签: php arrays syntax notation operands

我经常在各种代码段中看到$var->another_var$somevar=>yet_another,甚至$third_var->another=>$fourth_var

是否有一些超级惊人的信息图形清楚地解释了各种用法及其含义,特别是在PHP环境中?

(在我的例子中,使用Drupal,它使用很多数组,但可能在许多其他CMS /框架中很有用。)

编辑:此后我被告知了一个包含各种符号和语法的非常有用,百科全书列表的全能页面。但是,我认为其中未涉及的部分是$ var-> element => $ anothervar的混合组合。

2 个答案:

答案 0 :(得分:3)

单箭头 - T_OBJECT_OPERATOR

->

这用于访问对象属性以及与该属性关联的值。

$object->property='value'

我有一只狗,他的名字是船长

$dog->name='Captain';

现在我可以访问我的狗的属性。我们设置的属性是名称

$dogName=$dog->name;
echo $dogName;

将输出:Captain

我还可以将其他属性及其相关值添加到我的对象中。

$dog->weight='57lbs';

现在我的对象有两个与之关联的属性,名称和重量。

双箭头 - T_DOUBLE_ARROW

=>

documentation中所述,数组只是逗号分隔键的映射以及与键关联的值。双箭头本质上是一个赋值运算符,它将值赋给或关联到键。

$array = array("key" => "value");

再次使用狗的例子。

$dog = array("name" => "Captain", "weight" => "57lbs");

我们可以通过相应的键访问我的dog数组中的值。

$fatDog = $dog["weight"];
echo $fatDog;

将输出:57lbs

单箭头和双箭头的组合

$object->property=>$value;

这将对象/属性与键/值组合在一起。如果我们把它分解成它的成分,它可以使事情变得更加清晰。

我们知道$object->property将产生与该属性相关联的值。让我们首先将它与变量相关联:

$valueAssociatedWithProperty = $object->property;

在原文中使用替换:

$valueAssociatedWithProperty => $value;

我们已经看到它只是数组的键/值之前!让我们将它应用于狗的例子,看看会出现什么:

$dog->name="Captain";
$description="He is crazy";
$array = array($dog->name => $description);
// $array = array("Captain" => "He is crazy");
$whatIsCaptain = $array["Captain"];
echo $whatIsCaptain;


He is crazy

我希望这会有所帮助。

另请查看HERE您可能希望的所有参考资料!

答案 1 :(得分:1)

  • $var->another_var是&{34; another_var"引用的对象的属性$var

  • $somevar=>yet_another用于数组定义,如下所示:$arr = array($somevar => yet_another)。它将定义一个关联属性,其键等于变量$somevar的值,并且值等于常量yet_another

  • $third_var->another=>$fourth_var可以重写,因此更加清晰:

    array(  /*key=*/ ($third_var->another)  =>  /*value=*/ $fourth_var  )`