Функции в утверждении конструкции - PullRequest
0 голосов
/ 18 апреля 2011

Я просто что-то кодирую и хотел узнать, как я могу включить функцию в конструкцию.

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);
}

Можно ли назначить $ phone для вывода formatePhone() непосредственно в операторе contruct, но все жепроверить на return false;?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Вы можете включить назначение в качестве выражения. Но в вашем случае вы должны изменить порядок теста, чтобы сначала проверить пустоту, прежде чем значение будет переназначено:

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>';
}

Это спасет вас от остального дерева. Но более читабельно это не так. : |

1 голос
/ 18 апреля 2011
$phone = formatPhone($phone) or $phone = $default_value;

Это означает, что если возвращаемое значение formatPhone() равно false, $phone будет присвоено $default_value вместо false.В противном случае, если возвращаемое значение formatPhone() не является ложным, то $phone будет присвоено его возвращаемое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...