Php 我真的需要在使用变量之前将其定义为数组吗?

Php 我真的需要在使用变量之前将其定义为数组吗?,php,variables,Php,Variables,我是自学成才的,总是被告知在使用数组之前先定义它,例如 $example = array(); foreach($x as $y) { $example[] = $y; } 这有必要吗?每当我尝试不用它的时候,它似乎总是能正常工作。不,你不需要,但你应该这样做 首先创建阵列肯定是更好的做法。它使代码更具可读性。如果你不先定义变量,而有人读你的代码,他可能会对此感到恼火,并可能开始认为他忽略了一些东西,甚至他开始认为你遗漏了一些东西 缔约国还说: 如果$arr还不存在,它将被创建,因此

我是自学成才的,总是被告知在使用数组之前先定义它,例如

$example = array();

foreach($x as $y) {
    $example[] = $y;
}

这有必要吗?每当我尝试不用它的时候,它似乎总是能正常工作。

不,你不需要,但你应该这样做

首先创建阵列肯定是更好的做法。它使代码更具可读性。如果你不先定义变量,而有人读你的代码,他可能会对此感到恼火,并可能开始认为他忽略了一些东西,甚至他开始认为你遗漏了一些东西

缔约国还说:

如果$arr还不存在,它将被创建,因此这也是一个 创建数组的另一种方法然而,这种做法是错误的 不鼓励,因为如果$arr已包含某些值(例如字符串 从请求变量),则此值将保留在该位置并[] 实际上可能代表字符串访问操作符。最好是 通过直接赋值初始化变量


不,你不需要,但你应该

首先创建阵列肯定是更好的做法。它使代码更具可读性。如果你不先定义变量,而有人读你的代码,他可能会对此感到恼火,并可能开始认为他忽略了一些东西,甚至他开始认为你遗漏了一些东西

缔约国还说:

如果$arr还不存在,它将被创建,因此这也是一个 创建数组的另一种方法然而,这种做法是错误的 不鼓励,因为如果$arr已包含某些值(例如字符串 从请求变量),则此值将保留在该位置并[] 实际上可能代表字符串访问操作符。最好是 通过直接赋值初始化变量


必要的,不。更清楚的,是的。正如您所说,在PHP这样的弱类型语言中,它实际上是不必要的,但这是一个非常好的实践,如果没有其他原因,除了当您来修改这个程序时,
$example
被定义为数组这一事实与文档一样好。如前所述,最好将其设置为数组。在过去,当我没有将它设置为数组,然后决定需要检查数组键是否存在时,我就发现了这一点。如果您没有将任何内容推送到数组中,则会收到警告,
警告:array\u key\u exists()希望参数2为array,如果需要,则为null,不需要。更清楚,是的。正如您所说,在PHP这样的弱类型语言中,它实际上是不必要的,但是如果没有其他原因,除非您来修改这个程序,
$example
被定义为数组,那么它是一个非常好的实践。正如前面提到的,将它设置为数组是一个很好的实践。在过去,当我没有将它设置为数组,然后决定需要检查数组键是否存在时,我就发现了这一点。如果您没有将任何内容推送到数组,则会收到警告,
警告:array\u key\u exists()期望参数2为array,如果为null,则
似乎很清楚。我将首先继续定义它们:)thanks@wumm我对你前两句话的措辞做了一个小修改。您可能还想补充一点,强烈建议不要触发PHP中的任何错误,即使该级别的错误报告已关闭。我认为,即使关闭了错误报告,错误仍然会发生,并且通常会记录到文件中。(有很多错误会减慢你的系统。)@user2992596我很高兴我能澄清你的疑问。如果我的回答帮助了你,你没有更多的问题,请考虑接受它。@ NICJ,我刚刚发现没有警告会被触发(即使是EyALL)。所以我删除了我关于警告的一句话,你会明白,再加上警告/错误会减慢系统的速度已经没有多大意义了。现在接受。昨天我不得不等了几分钟才能接受它,而且在计时器启动前不得不注销:)似乎很清楚。我将首先继续定义它们:)thanks@wumm我对你前两句话的措辞做了一个小修改。您可能还想补充一点,强烈建议不要触发PHP中的任何错误,即使该级别的错误报告已关闭。我认为,即使关闭了错误报告,错误仍然会发生,并且通常会记录到文件中。(有很多错误会减慢你的系统。)@user2992596我很高兴我能澄清你的疑问。如果我的回答帮助了你,你没有更多的问题,请考虑接受它。@ NICJ,我刚刚发现没有警告会被触发(即使是EyALL)。所以我删除了我关于警告的一句话,你会明白,再加上警告/错误会减慢系统的速度已经没有多大意义了。现在接受。昨天我不得不等几分钟才能接受它,并且在计时器启动之前必须注销:)