什么是下面的语句是指
$tmp = @$_GET['myValue'];
可有人请提供有关上述声明详细解释?
什么是下面的语句是指
$tmp = @$_GET['myValue'];
可有人请提供有关上述声明详细解释?
@符号是错误的抑制操作。不建议在任何地方使用它。而且,它比isset()函数慢两倍。 请参阅http://php.net/manual/en/language.operators.errorcontrol.php
的@ error control操作符的完整参考它将GET参数myValue
的值赋值为tmp
(如果存在)。如果不是 - 那么tmp = null
PS:这是一个不好的做法。更好的做法是:
$tmp = isset($_GET['myValue']) ? $_GET['myValue'] : null;
请参阅文档和示例here。
@ : to avoid warning
$_GET : An associative array of variables passed to the current script via the URL parameters.
myval : parameter
-
例如
http://example.com/?myval=test
echo @$_GET['myval']; will echo test
http://example.com/
echo @$_GET['myval']; will be null
//php 5.4 way is
var_dump(isset($_GET['myValue']) ? : null);