2011-04-18 53 views
0

我只是編寫了一些東西,想知道如何在構造中包含函數。構造語句中的函數

if (!formatPhone($phone) && !empty($phone)) { 
    $e = 1; 
    $e_message .= '<li>The phone number is invalid, please use the format (000) 000-0000.</li>'; 
} else { 
    $phone = formatPhone($phone); 
} 

我可以分配$手機直接formatePhone()輸出在contruct聲明,但仍查了return false;

+0

問題不明確。 – zerkms 2011-04-18 01:15:04

+0

我假設你的意思是構造作爲assign的同義詞? – 2011-04-18 01:17:50

+0

瞭解'formatPhone()'函數的作用並返回將會很有用。 – mario 2011-04-18 01:19:40

回答

1

您可以包含一個賦值作爲表達式。但是,在你的情況,你應該重新排序測試,該值將被重新分配之前首先檢查空虛:

if (!empty($phone) and !($phone = formatPhone($phone))) { 
    $e = 1; 
    $e_message .= '<li>The phone number is invalid, please use the format (000) 000-0000.</li>'; 
} 

這將節省您的其他樹。但更可讀的這不是。 :|

+0

真棒,謝謝! – ATLChris 2011-04-18 01:39:10

1
$phone = formatPhone($phone) or $phone = $default_value; 

這意味着,如果formatPhone()返回值是假的,$phone將獲得分配$default_value,而不是假的。否則,如果返回值formatPhone()不是錯誤的,則$phone將被分配其返回值。

+0

@mario'或'的優先級低於'='(我記得)。所以它會在評估之後。可以適當添加括號。如果'formatPhone($ phone)'返回false,'$ phone'被設置爲'false',然後立即被設置爲'$ default_value'。 – Matt 2011-04-18 01:35:02

+0

@Matt:我的評論是針對原文的。 (現在已經默默地改變了......) - 儘管如此,仍然不是真正的OPs案例的答案。 – mario 2011-04-18 01:35:59

+0

@mario好吧然後這是有道理的(當你發佈後,事情得到編輯混淆) – Matt 2011-04-18 01:37:42

相關問題