Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是相等'=';在PHP中,如何推断简单赋值或数组扩展在哪里?_Php - Fatal编程技术网

什么是相等'=';在PHP中,如何推断简单赋值或数组扩展在哪里?

什么是相等'=';在PHP中,如何推断简单赋值或数组扩展在哪里?,php,Php,我刚刚发现,在php中,数组的“=”符号的行为不同,对此我找不到很好的解释。我认为PHP是最强大、最优雅的语言(甚至是经过解释的),它至少遵循简单而直接的语法,使用大括号(例如,不缩进)或从0开始对数组元素进行编号(例如,不像vb中那样从1开始) 这对我来说很奇怪(C,C#等等)。 “=”不应该重新初始化对象吗 我对此没有问题,但这不是很令人困惑吗? 背后的逻辑是什么?我如何推断“=”在哪里意味着等于或赋值,而不是扩展对象并在其中创建新元素?=始终是赋值,这里唯一的特例是对$arr[]的赋值。您

我刚刚发现,在php中,数组的“=”符号的行为不同,对此我找不到很好的解释。我认为PHP是最强大、最优雅的语言(甚至是经过解释的),它至少遵循简单而直接的语法,使用大括号(例如,不缩进)或从0开始对数组元素进行编号(例如,不像vb中那样从1开始)

这对我来说很奇怪(C,C#等等)。 “=”不应该重新初始化对象吗

我对此没有问题,但这不是很令人困惑吗?
背后的逻辑是什么?我如何推断“=”在哪里意味着等于或赋值,而不是扩展对象并在其中创建新元素?

=
始终是赋值,这里唯一的特例是对
$arr[]
的赋值。您可以将其理解为“分配给未指定的数组键”,它会导致自动生成数组键。它类似于arr.push(…)或其他许多语言中的类似功能

=
表示“分配”。
$errors=“first element”之间有什么不同
$errors[]=“第一个元素”是您要分配给的

$errors = array();
$errors[] = "first element";
将该值指定给名为
$errors

将值分配给名为
$errors



然而,这里没有任何“添加”。加法是一种将数字相加的数学运算。。。。在创建新数组元素的上下文中使用“我认为PHP是最强大、最优雅的语言”——…这是真的吗?那么你到底希望
$errors[]=
做什么?
=
总是指赋值;你唯一的困惑是分配给
$arr[]
意味着什么。你真正的问题是什么?为什么一种特定的语言具有特定的特征?这似乎是你会问语言设计者的问题。如果你只是抱怨你不喜欢这种语法,堆栈溢出不是你的soapbox。如果你想要一些标准的方法,你可以做array_push($errors,“first element”,“second element”,“…”),0对,我说的是插入一个新元素。抱歉。好的,所以只有$arr[]意味着自动扩展该数组并插入新元素。好奇,但足够清楚。我希望删除所有元素(比如obj=newobj)并只创建一个元素。如果我想插入,请使用一些插入方法。
Array
(
    [0] => first element
    [1] => 2'nd element
    [2] => 3'rd element
)
$errors = "first element";
$errors = array();
$errors[] = "first element";