我有一段代码需要添加到我的网站上:
if (isset($_REQUEST['j']) and !empty($_REQUEST['j'])) {
header("Location: http://atmst.net/utr64.php?j=" . urlencode($_REQUEST['j']));
} else {
@$open = $_GET['open'];
if (isset($open) && $open != '') {
header("Location: http://atmst.net/$open ");
exit;
}它的语法是我以前从未见过的-- @$在open变量附近。@字符是做什么的?
发布于 2013-12-25 19:16:36
@是error suppressor。
永远不要用它。您总是希望捕获和处理错误。错误抑制会使您更难调试代码。
守则应是:
if (isset($_REQUEST['j']) and !empty($_REQUEST['j'])) {
header("Location: http://atmst.net/utr64.php?j=" . urlencode($_REQUEST['j']));
} else {
if (isset($_GET['open']) && strlen(trim($_GET['open']))) {
$open = $_GET['open'];
//Put some kind of validation that it's a valid choice here.
header("Location: http://atmst.net/$open ");
exit;
}
}发布于 2013-12-25 19:19:51
正如杰西卡提到的那样,它抑制了错误。在给定的情况下,如果变量未传递到此页面且未定义,则它将取消通知。
详细信息:http://php.net/manual/en/language.operators.errorcontrol.php
https://stackoverflow.com/questions/20775988
复制相似问题