【问题标题】:Single arrow vs double arrow mix and match [duplicate]单箭头与双箭头混合搭配[重复]
【发布时间】:2016-03-18 18:21:21
【问题描述】:

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

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

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

编辑: 此后,我被告知有一个包罗万象的页面,该页面具有非常有用的百科全书式列表,其中包含各种符号和语法。但是,我相信其中没有涵盖的部分是 $var->element=>$anothervar 的混合搭配组合。

【问题讨论】:

  • 原始问题已被编辑以强调独特性。请重新评估。谢谢!

标签: php arrays syntax notation operands


【解决方案1】:

单箭头 - 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 将产生与该属性关联的值。让我们先将它与一个变量相关联:

$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 以获取您希望得到的所有参考资料!

【讨论】:

    【解决方案2】:
    • $var->another_var 是“$var 引用的对象的属性 another_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  )` 
      

    【讨论】:

    • 非常有帮助!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2017-11-13
    • 2021-05-09
    • 2020-06-03
    相关资源
    最近更新 更多