Упростите очень длинное выражение if в PHP - PullRequest
0 голосов
/ 21 ноября 2018
$gateway_site_id = $_POST['gateway_site_id'];
$site_location = $_POST['site_location'];
$city = $_POST['city'];
$contact = $_POST['gateway_site_id'];
$date_installed = $_POST['date_installed'];
$care_of = $_POST['care_of']; 
$notes = $_POST['notes'];
$gateway_username = $_POST['gateway_username'];



if(empty($gateway_username)){
    $gateway_username="N/A";
}if(empty($notes)){
    $notes="N/A";
}if(empty($care_of)){
    $care_of="N/A";
}if(empty($date_installed)){
    $date_installed="N/A";
}if(empty($city)){
    $city="N/A";
}if(empty($site_location)){
    $site_location="N/A";
}if(empty($gateway_site_id)){
    $gateway_site_id="N/A";
}

Когда я отправляю свою форму, я просто хочу установить пустые поля с N/A.Мой код работает, но я думаю, что он слишком длинный, есть ли способ упростить его?

Ответы [ 4 ]

0 голосов
/ 21 ноября 2018

Попробуйте:

$gateway_site_id = empty($_POST['gateway_site_id']) ? $_POST['gateway_site_id'] : 'N/A';
$site_location = empty($_POST['site_location']) ? $_POST['site_location'] : 'N/A'; 
$city = empty($_POST['city']) ? $_POST['city'] : 'N/A'; 
$contact = empty($_POST['gateway_site_id']) ? $_POST['gateway_site_id'] : 'N/A';
$date_installed = empty($_POST['date_installed']) ? $_POST['date_installed'] : 'N/A';
$care_of = empty($_POST['care_of']) ? $_POST['care_of'] : 'N/A'; 
$notes = empty($_POST['notes']) ? $_POST['notes'] : 'N/A'; 
$gateway_username = empty($_POST['gateway_username']) ? $_POST['gateway_username'] : 'N/A';
0 голосов
/ 21 ноября 2018

Если вы используете PHP 7, вы можете использовать Coalescing Operator для проверки пустого значения в массиве POST, например:

$gateway_site_id    = $_POST['gateway_site_id'] ?? 'N/A';
$site_location      = $_POST['site_location']  ?? 'N/A';
$city               = $_POST['city'] ?? 'N/A';
$contact            = $_POST['gateway_site_id'] ?? 'N/A';
$date_installed     = $_POST['date_installed'] ?? 'N/A';
$care_of            = $_POST['care_of'] ?? 'N/A';
$notes              = $_POST['notes'] ?? 'N/A';
$gateway_username   = $_POST['gateway_username'] ?? 'N/A';
0 голосов
/ 21 ноября 2018

Примерно так:

$required = ['gateway_site_id', 'site_location', 'city', 'gateway_site_id', 'date_installed', 'care_of', 'notes','gateway_username'];
foreach ($required as $req) 
        ${$req} = isset($_POST[$req]) ?  $_POST[$req] : 'N\A';
0 голосов
/ 21 ноября 2018

Проверьте пустоту с помощью троичного оператора и напишите так:

$gateway_site_id = $_POST['gateway_site_id'] ?: 'N/A' ;
// ...
$gateway_username = $_POST['gateway_username'] ?: 'N/A';

// all `if`s can be removed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...