una que por poner pides persona pedir mujeres mensaje ligar hacen favor experiencia dinero dificil curriculum cuando con como chico arte php conditional

php - que - el arte de pedir un favor



PHP-y/o palabras clave (4)

Es && lo mismo que "y", y es || lo mismo que "o" en PHP?

He hecho algunas pruebas, y parece que se comportan igual. ¿Hay alguna diferencia?

Si no, ¿hay algún otro signo de PHP que tenga palabras equivalentes y cree que hace que el código sea más fácil de leer?


La diferencia está en la precedencia . ¡Pero no solo comparado el uno con el otro!

En la mayoría de los casos no le importará, pero hay casos específicos en los que tiene que retroceder un paso y observar el panorama general. Toma esto, por ejemplo:

// The result of the expression (true && false) is assigned to $g // Acts like: ($g = (true && false)) $g = true && false; // The constant true is assigned to $h before the "and" operation occurs // Acts like: (($h = true) and false) $h = true and false; var_dump($g, $h);

Esto producirá, respectivamente:

bool(false) bool(true)

En otras palabras, && tiene una preferencia mayor que = , que tiene una precedencia mayor que and , como se indica en http://php.net/manual/en/language.operators.precedence.php . (Se menciona en otras respuestas, pero creo que vale la pena detallar, ya que un mal uso puede conducir a errores lógicos)

Espero que te pueda ayudar. Puede encontrar más en http://php.net/manual/en/language.operators.logical.php


Lo que me molesta es:

echo (false and false ? true : true); // (empty/false)

Puede adivinar que solo existe la salida posible de "1" (verdadero) ya que no hay ningún caso que pueda generar un resultado falso ... ... pero será "" (falso).

Usar && como operador en este caso satisface al menos mis expectativas:

echo (false && false ? true : true); // 1

Entonces, en algunos casos, el uso es importante.


Sí, son lógicamente lo mismo. (Creo que "&&" y "||" son la opción preferida en los estándares de codificación de Zend , pero no puedo encontrar ninguna información específica sobre esto, por lo que podría haber sido un sueño. O algo así.)

Eso dijo:

  1. "&&" y "||" tienen una http://www.php.net/manual/en/language.operators.precedence.php que "Y" y "O" (es poco probable que alguna vez sea relevante, pero nunca se sabe).

  2. Muchos otros lenguajes usan "&&" y "||", en lugar de los equivalentes de texto, por lo que podría ser una idea ir con esto.

  3. Siempre y cuando uses el conjunto de operadores elegido consistentemente, realmente no importa.