Pregunta

Hace mucho tiempo yo solía usar "o morir" en mi código PHP. Especialmente como esto:

$q = mysql_query('......') or die(mysql_error());

Obviamente, eso es bastante vergonzosa en estos días, pero la X o principio Y todavía me habla. Así que aunque me gustaría probar este:

$r = $this->exec($query) or throw new Exception('FAIL');

sino que se traduce en un error de análisis! ¿Cuál es la mejor práctica para tales declaraciones. Tiene que parecer bueno también (obviamente!) ...

No me gusta

if ( !($r = $this->exec($query)) ) throw new ...

o

$r = $this->exec($query)
if ( !$r ) throw new ....

Cualquier favoritos? Desánimo? ¿Mejores prácticas? La velocidad es siempre agradable.

¿Fue útil?

Solución

No hay nada malo con los dos ejemplos que utilizó, excepto que usted les ha sandwitched en una línea.

No estoy seguro de lo que está buscando, o por qué estás culpa hallazgo con una sentencia if - es bastante probado y comprobado en este punto. Dicho esto, se puede hacer algo como esto a calzador en el operador or, pero el que mantiene su código después de que te has ido te maldecirá.

function throw_ex($what) {
  throw $what;
}

function fails() {
  return false;
}

$x = fails() or throw_ex(new exception("failed"));

No veo cómo este ganancias usted algo sobre el viejo sentencia if.

Otros consejos

El hecho del asunto es, debería utilizar if para detectar errores reales, recuperables . Especialmente si está utilizando InnoDB que a veces puede tener puntos muertos durante el funcionamiento normal y la forma correcta de manejar no es morir (), sino simplemente presentar la consulta de nuevo.

Más información aquí: http://arjen-lentz.livejournal.com/150464.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top