我正在寻找一种更好,更简单的方法来做到这一点。我记得我在某个地方看过一个速记。
if (isset($user['passport'])) $passport=$user['passport'];
编辑让你知道我的意思
经典ASP:
user=request.form("user")
response.write user
ASP 并不关心用户是否存在,因此不打印任何内容
PHP中的相同
$user=$_POST['user'];
echo $user;
PHP打印通知:未定义的变量
答案 0 :(得分:4)
如果您需要速记条件,可以使用ternary operator
作为:
$passport = (isset($user['passport']) ? $user['passport'] : '');
答案 1 :(得分:2)
您可以将PHP三元运算符用于此目的
了解三元运算符http://php.net/manual/en/language.operators.comparison.php
的链接示例php代码
<?php
// Example usage for: Ternary Operator
$passport = (isset($user['passport'])) ? $user['passport'] : '';
// The above is identical to this if/else statement
if (isset($user['passport'])) {
$passport = $user['passport'];
} else {
$passport = '';
}
?>
答案 2 :(得分:1)
试试这个:
$passport = ($user['passport'])?: '';
答案 3 :(得分:0)
经典ASP'可能不关心',但不要被明显没有的值所欺骗。有时它们确实包含某些内容#0000FFFF
。当然,这完全取决于价值的原始来源。
我倾向于用来强制特定类型变体的快速而脏的方法是在开头添加一个空字符串,例如:
Nothing
对于PHP,您可以考虑:
user = "" & Request.Form("user")
'As a numeric example from a different source...
count = CInt("0" & rs("record_count"))
(不幸的是,我不太了解PHP。)
答案 4 :(得分:-1)
$passport=$user['passport']?$user['passport']:"Value if not set";