Как лучше это можно написать?Код PHP - PullRequest
2 голосов
/ 03 июня 2011

Я пытаюсь сгенерировать окончательную строку для отображения пользователей на основе некоторых условий.

$flag=0;
$var='Please ';
if($user->is_details_updated == 'N' && $user->needs_to_update_details == "Y")
{
    $var='update your profile details';
    $flag=1;
}
if ($flag ==1)
{
    $var=' and ';
}
if($user->is_pass_changed == 'N' && $user->needs_to_update_password == "Y")
{   
    $var.='change password';
}

Итак, если все три if возвращают true, тогда окончательное $var выглядит так:

Пожалуйста, обновите данные своего профиля и смените пароль

Как это можно написать лучше?

Ответы [ 3 ]

6 голосов
/ 03 июня 2011

Вы можете добавлять сообщения в массив, а затем присоединять их с помощью and

$var = arrray()
if($user->is_details_updated == 'N' && $user->needs_to_update_details == "Y")
{
    $var[] ='update your profile details';

}

if($user->is_pass_changed == 'N' && $user->needs_to_update_password == "Y")
{   
    $var[]='change password';
}

echo join(" and ", $var);
3 голосов
/ 03 июня 2011

Как насчет:

$sayings = array();

if($user->is_details_updated == 'N' && $user->needs_to_update_details == "Y") {
    $sayings[] = 'update your profile details';
}

if($user->is_pass_changed == 'N' && $user->needs_to_update_password == "Y") {   
    $sayings[] = 'change password';
}

$var = 'Please ' . implode(' and ', $sayings);
0 голосов
/ 03 июня 2011

Другим предложением было бы (если это возможно) реорганизовать свойства $user->is_details_updated, $user->needs_to_update_details, $user->is_pass_changed, $user->needs_to_update_password для возврата логических значений true / false.Это может спасти некоторые головные боли отладки позже.

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