2016-02-26 142 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,很遺憾。)

相關問題