2016-02-26 39 views
1

我正在寻找更好,更简单的方法来做到这一点。我记得我在某处看到了一个简写。我可以给另一个var分配一个值,我不知道它是否存在于一行中?

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

编辑,让你知道我的意思

传统的ASP:

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

ASP如果用户存在不关心,所以什么都不打印

PHP中的相同

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

PHP打印注意:未定义的变量

+3

这样子??? '$ passport =(isset($ user ['passport'])?$ user ['passport']:'');' – devpro

+1

@devpro将它作为答案 – 2016-02-26 10:00:49

+0

@LPK:好的,是发布为答案..: ) – devpro

回答

4

如果需要小号horthand条件比你可以使用ternary operator为:

$passport = (isset($user['passport']) ? $user['passport'] : ''); 
+0

我喜欢你的答案,这个工程也没有括号,但无论如何我要重复的所有答案** $ user ['护照'] ** – Vixed

-1
$passport=$user['passport']?$user['passport']:"Value if not set"; 
+0

即使$ user [ '护照']不是布尔,它会工作,请尝试。 – Peeje

+0

你说得对。但为什么?因为$ user ['passport']不为空? – 2016-02-26 10:04:45

+1

不,即使它的值为null,默认情况下它会认为它是isset。 – Peeje

1

试试这个:

$passport = ($user['passport'])?: ''; 
+0

我测试它;) – Vixed

+0

注意:未定义指数:护照:( – Vixed

+0

什么是在$用户 –

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 = ''; 
} 
?> 
0

经典ASP'可能不关心',但不要被愚蠢的显然没有任何existe nt值。有时他们确实包含某些东西, Nothing。当然,这一切都取决于价值的原始来源。

一个快速和肮脏的方法,我倾向于使用强制特定类型的变种是一个空字符串附加到开始,如:

user = "" & Request.Form("user") 
'As a numeric example from a different source... 
count = CInt("0" & rs("record_count")) 

对于PHP,你可以考虑:

$passport = "" . $user[passport]; 

(我不知道很多关于PHP,很遗憾。)

相关问题