单箭头与双箭头混搭
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 以获得您可能希望得到的所有参考资料!
我经常在各种代码片段中看到 $var->another_var
,或 $somevar=>yet_another
,甚至 $third_var->another=>$fourth_var
。
是否有一些超级惊人的信息图表可以清楚地解释各种用法及其含义,特别是在 PHP 上下文中?
(在我的例子中,使用 Drupal,它使用大量数组,但可能在许多其他 CMS/框架中有用。)
编辑: 从那以后,我了解到一个包罗万象的页面,该页面包含各种符号和语法的非常有用的百科全书列表。但是,我相信其中未涵盖的部分是 $var->element=>$anothervar 的混合匹配组合。
$var->another_var
是 "propertyanother_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 以获得您可能希望得到的所有参考资料!