2011-04-18 54 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

相关问题