1

Quisiera resolver este codigo en una linea como se haria en javascript, pero para php.

if ($_SERVER['HTTP_HOST'] == LOCAL_DOMAIN) {
    $ip = '170.55.81.114'; /*dev */
}

Que en JS seria algo como,

const ip = $_SERVER['HTTP_HOST'] == LOCAL_DOMAIN && '170.55.81.114'
1
  • si mi respuesta soluciono tu problema recuerda marcas como resuelto, saludos. Commented el 4 feb. 2023 a las 16:55

1 respuesta 1

3

En PHP hay operaciones ternarias que es lo que se hace en javascript:

Siguiendo tu ejemplo, estas regresando la IP, pero si no entra al if php generara un warning y te dira que $ip es null:

if ($_SERVER['HTTP_HOST'] == LOCAL_DOMAIN) {
    $ip = '170.55.81.114'; /*dev */
}

En este caso con la operacion ternaria estarias devolviendo la ip o null que es esactamente lo mismo pero evitando el warning:

$ip = $_SERVER['HTTP_HOST'] == LOCAL_DOMAIN ? '170.55.81.114':null;

A todo esto si el script se va a ejecutar desde CLI, es importante saber que en dicho entorno no existe la super global $_SERVER por ende no existira $_SERVER['HTTP_HOST'] como control se puede hacer esto:

$ip = (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == LOCAL_DOMAIN) ? '170.55.81.114':null;

Con esto se valida que exista y al mismo tiempo que concuerde con el valor esperado.

2
  • Muchas gracias, habia intentado hacer eso pero con isset y me estaba dando error. Veo que para tal caso no es necesario utilizar isset. Commented el 6 feb. 2023 a las 14:33
  • el isset es un control de error por ejemplo seria valido si tu script debe ejecutarce desde un CLI Commented el 6 feb. 2023 a las 15:33

¿No es la respuesta que buscas? Examina otras preguntas con la etiqueta o formula tu propia pregunta.