在PHP的一些示例中,我看到人们将事物分配给速记变量,然后使用简写变量。这是常见做法吗?这是好习惯吗?
$name = $_POST['name'];
然后他们使用他们在这里使用$ name来回显或使用它作为函数参数。
另一个例子是:
DEFINE('DB_USER', 'username');
mysqli_connect(DB_USER.......);
答案 0 :(得分:3)
优点:
缺点:
答案 1 :(得分:2)
我已经专业地做了大约5年的PHP。
通常在获取post变量时这是一个好主意,但更常见的是将它包装在isset三元if语句中:
$name = isset($_POST['name']) ? $_POST['name'] : false;
这样,如果未传递变量,则不会收到未定义的变量警告。
此外,它可以节省您每次都输入$ _POST,并且有助于更好地封装代码。
答案 2 :(得分:1)
编写代码时最重要的是编写可读代码,不仅适用于其他人,也适用于您自己。我们一直这样做,即抽象和应用编程方法 因此,预定义我们将使用的变量并设置默认值非常有意义。
我会做这样的事......
class ValueTooLong extends Exception {}
function R($param, $default=null, $type='string', $max_length=null) {
if(!isset($_REQUEST[$param]))
return $default;
$r = $_REQUEST[$param];
if($max_length && strlen($r) > $max_length)
throw new ValueTooLong('Length of '.$param.' was '.strlen($r).'. Max length is: '.$max_length);
if($type === 'bool' || $type === 'boolean') {
if($r === 'false' || $r === 'no')
return false;
return !empty($r);
}
settype($r, $type);
return $r;
}
# Which allows me do do this:
$name = R('name');
# or:
$count = R('count', 1, 'int');
编辑:函数现在采用max_length参数(如注释所示),如果请求参数的值太长则抛出异常