我是否可以将一个值分配给另一个我不知道是否存在于一行中的var?

时间:2016-02-26 09:54:41

标签: php variables if-statement asp-classic isset

我正在寻找一种更好,更简单的方法来做到这一点。我记得我在某个地方看过一个速记。

if (isset($user['passport'])) $passport=$user['passport'];
  

编辑让你知道我的意思

经典ASP:

user=request.form("user")
response.write user

ASP 并不关心用户是否存在,因此不打印任何内容

PHP中的相同

$user=$_POST['user'];
echo $user;

PHP打印通知:未定义的变量

5 个答案:

答案 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";