php

PHP中=>和->有什么区别?

2023-09-22

有时候PHP 开发人员会在程序中对 -> 和 => 的使用感到困惑,弄不清两者之间有什么区别,以及各自在程序中的作用和应用。

本文将解释 -> 和 => 运算符之间的区别,并用代码示例演示它们各自的适用范围。


首先说它们的共同点。

他们都是运算符

运算符是告诉编译器或解释器执行特定操作的符号,例如算术计算、两个值的比较、将值分配给变量/常量或对象的遍历等。


PHP 中的 => 是什么?

这称为双箭头运算符。它是用于创建关联数组的赋值运算符。

它位于数组键和它的值之间。它为键(左侧引号中的内容)分配右侧内容的值。

句法:  "key" => value

示例

"name" => "John"

从上面的示例中,可以为键指定任何名称,但必须用引号括起来(单引号或双引号)。根据其数据类型,右侧的值可能用引号括起来,也可能不括起来。例如,您不必将整数或布尔值括起来,但必须将字符串括起来。

您可以将值直接放入,也可以将其存储在变量或常量中,然后将其分配给键。

键值对用逗号 ( , )相互分隔,但您不要在最后一对之后放置逗号。


示例 1

<?php

$person = array(

    "firstName" => "John",

    "lastName" => "Doe",

    "age" => 28,

    "gender" => "Male",

    "email" => "johndoe@gmail.com",

    "city" => "Germany"

);

?>


示例 2

您还可以使用方括号( [ ] )形成上述数组,如下所示:

<?php

$person = [

    "firstName" => "John",

    "lastName" => "Doe",

    "age" => 28,

    "gender" => "Male",

    "email" => "johndoe@gmail.com",

    "city" => "Germany"

];

?>


PHP 中的 -> 是什么?

这称为对象运算符,有时也称为单箭头运算符。

它是一种访问运算符,用于在面向对象编程 (OOP) 中访问/调用 PHP 对象中的方法和属性。

<?php

class People {

   public $name = 'John Doe';

   public function Developer() {

   }

}

$person = new People();

$person->Developer();

echo $person->name;

?>


上面的例子是 PHP 脚本中的面向对象编程。

我们创建了“人”类的“人”对象。代码的输出将是“John Doe”。

我们已经使用人员对象上的对象运算符访问了公共变量“$name”。

我们还使用对象运算符来访问方法“Developer”。


除了访问类对象之外,我们还可以使用对象运算符 (->) 来访问 JSON 对象的元素,如下例所示:

<?php

$person = '{

    "firstName":"John",

    "lastName": "Doe",

    "age":28,

    "gender":"Male",

    "email":"johndoe@gmail.com",

    "city":"Germany"

}';

$data = json_decode($person);

echo $data->firstName;

?>

此代码的输出将是“John”。您可以以同样的方式简单地访问其他元素的值。


结论

=> 和 -> 这两个运算符看起来很相似,但它们的用法完全不同。

=> 被称为双箭头运算符。它是关联数组中使用的赋值运算符,用于在创建数组时将值分配给键值对。它位于键和值之间,并将其右侧(值)的内容分配给其左侧(键)的内容。

-> 称为对象运算符或单箭头运算符。它用于访问类对象的方法和属性。也用于访问 JSON 对象元素。