单箭头与双箭头混搭

Single arrow vs double arrow mix and match

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

是否有一些超级惊人的信息图表可以清楚地解释各种用法及其含义,特别是在 PHP 上下文中?

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

编辑: 从那以后,我了解到一个包罗万象的页面,该页面包含各种符号和语法的非常有用的百科全书列表。但是,我相信其中未涵盖的部分是 $var->element=>$anothervar 的混合匹配组合。

  • $var->another_var 是 "property another_var of object referenced by $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  )` 
    

单箭头 - T_OBJECT_OPERATOR

->

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

$object->property='value'

我有一只狗,它的名字叫船长

$dog->name='Captain';

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

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

将输出:Captain

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

$dog->weight='57lbs';

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

双箭头 - T_DOUBLE_ARROW

=>

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

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

再次使用狗的例子。

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

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

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

将输出:57lbs

单双箭头组合

$object->property=>$value;

这结合了 object/property 和 key/values。如果我们将它分解成它的组成部分,它可以使事情变得更加清晰。

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

$valueAssociatedWithProperty = $object->property;

对原件进行替换得到:

$valueAssociatedWithProperty => $value;

我们已经看到了,之前只是一个数组的key/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 以获得您可能希望得到的所有参考资料!