在PHP中使用串联赋值运算符之前是否需要定义变量?

时间:2018-07-14 09:38:35

标签: php arrays string

我已经尝试并知道如果我使用

$a .="test";
$a .=" test2";

并回显$ a

echo $a

返回

test test2

也适用于数组

<?php 
$testarray['Title'] = "test";
$testarray['text'] = "text";
 print_r($testarray); 

 ?>

它给出正确的结果而无需声明$ testarray = [];

Array ( [Title] => test [text] => text )

它甚至不显示警告或通知。.所以我只想知道在变量之前或两者都声明是好的做法。如果它与任何特定的php版本有关。 php 7.1会在早期版本中显示错误吗?

1 个答案:

答案 0 :(得分:1)

,不是必需的,但是最好先声明/初始化变量。

实际上,如果您遵循任何编码标准,则可以明确地避免使用串联分配运算符; 您收到PHP通知是有原因的

第二种情况不一定很糟糕。如果闭包中使用了数组变量,并且没有歧义,那可以说很好。但是,如果我们谈论的是大文件,类属性或其他关键部分,那么以这种方式使用(关联)数组时,您可能仍会做错事情。

这里的一般建议是,遵循现有框架提出的编码标准。大多数大型框架都有编码指南(这里是不错的overview),否则请遵循PSR-2PSR-1或某些自定义编码标准(例如this);重要的是:保持一致