Есть ли способ оптимизировать этот пример условного if-else?


я хочу сделать условное условие, которое ищет, как это или проверяет, но не использует столько строк кода

if (is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php") || 
    is_file(PATH_CONTROLLERS.$controller."Controller.php") ) {

    if (is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php") ) {
        require PATH_CONTROLLERS.$controller."/".$controller."Controller.php";
    }else{
        require PATH_CONTROLLERS.$controller."Controller.php";      
    }
        $controller .= 'Controller';
        $controller = new $controller();
        $controller->$method($param);
}else{
    echo "La Direccion que trata de Acceder No Existe ";
}
Author: Carlos A. Gómez, 2017-06-25

1 answers

Вы можете попробовать это, используя тройной оператор и некоторую временную переменную.

$esArchivo = is_file(PATH_CONTROLLERS.$controller."/".$controller."Controller.php");
if ($esArchivo || is_file(PATH_CONTROLLERS.$controller."Controller.php") ) {
    require PATH_CONTROLLERS.$controller.($esArchivo ? "/".$controller : "")."Controller.php";
    $controller .= 'Controller';
    $controller = new $controller();
    $controller->$method($param);
} else {
    echo "La Direccion que trata de Acceder No Existe ";
}

Вы также можете сделать это так:

$ruta1 = PATH_CONTROLLERS.$controller."/".$controller."Controller.php";
$ruta2 = PATH_CONTROLLERS.$controller."Controller.php"; 
if (is_file($ruta1) || is_file($ruta2)) {
    require is_file($ruta1) ? $ruta1 : $ruta2;
    $controller .= 'Controller';
    $controller = new $controller();
    $controller->$method($param);
} else {
    echo "La Direccion que trata de Acceder No Existe ";
}
 2
Author: Carlos A. Gómez, 2017-06-26 06:49:13