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()直接在构造语句中将 $phone 分配给输出,但仍然检查 areturn false;吗?

4

2 回答 2

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

这意味着如果 的返回值为formatPhone()false,$phone将被赋值$default_value而不是 false。否则,如果 的返回值formatPhone()不为假,那么$phone将被赋予其返回值。

于 2011-04-18T01:14:18.617 回答
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>';
}

这将为您节省 else 树。但更具可读性的是,这不是。:|

于 2011-04-18T01:31:26.257 回答