空变量在php中定义

Zer*_*f3r 33 php variables declaration

在使用$ error做某事之前:

$error = NULL;
Run Code Online (Sandbox Code Playgroud)

在某些剧本中看到:

$error = '';
$error = false;
$error = 0;
Run Code Online (Sandbox Code Playgroud)
  • 哪种方法"更好"或者可能取决于我使用它的情况?
  • 你的建议是什么?

Mad*_*iha 44

取决于您的设计:

  • 如果出现错误,您是将其设置为对象吗?使用NULL.
  • 你是在设置true错误的情况下设置的吗?使用false.
  • 如果出现错误,您是否将其设置为某种数字?使用0.
  • 您是否将其设置为字符串来描述错误?使用''.

指示错误的更好方法是抛出异常,而不是根据它设置变量并确定错误.

  • @Kwadz通常为空数组。 (2认同)
  • @standalone如果有任何东西,[[]`,而不是`array();`,我们就不再使用PHP 5.3了;) (2认同)

Int*_*ang 5

这个问题没有规范的答案。只要您始终如一地使用这些信号量之一,您就可以使用任何您想要的东西。因为 PHP 是松散类型的,所以所有这些值都是“假的”并且可以在布尔比较中评估为FALSE.

也就是说,空字符串和其他字符串之间存在更多差异,因此在这种情况下我会坚持使用NULLs 和FALSEs 。


小智 5

1.

$v = NULL;

settype($v, 'string');
settype($v, 'int');
settype($v, 'float');
settype($v, 'bool');
settype($v, 'array');

var_dump($v);
Run Code Online (Sandbox Code Playgroud)

2.

$v = NULL;
var_dump( (string) $v);
var_dump( (int) $v);
var_dump( (float) $v);
var_dump( (bool) $v);
var_dump( (array) $v);
Run Code Online (Sandbox Code Playgroud)