Simplemente curioso ... al escribir una declaración de requerir/incluir, ¿qué prefieres como una mejor práctica?PHP requiere/incluye prácticas de codificación
require('filename.php');
o
require 'filename.php';
Gracias!
Simplemente curioso ... al escribir una declaración de requerir/incluir, ¿qué prefieres como una mejor práctica?PHP requiere/incluye prácticas de codificación
require('filename.php');
o
require 'filename.php';
Gracias!
Siempre lo último - lo mismo se aplica a echo
, print
y otras construcciones de lenguaje, también. ¡Nunca agregue paréntesis adicionales después de construcciones de lenguaje!
La razón es simple: el uso de paréntesis hace que creas que require
es una función, ¡que no lo es! Por ejemplo:
if (require('file.php') == false) {
// do stuff
}
usted - y probablemente incluso la mayoría de los desarrolladores de PHP altos - diría que esto se compara el valor de retorno de la require
. ¡Pero no es así! PHP interpreta esto como:
if (require (('file.php') == false)) {
// do stuff
}
que es:
if (require '') {
// do stuff
}
Si utiliza el paréntesis con el lenguaje construye usted podría así escribe:
require(((((((((((((((((((('file.php'))))))))))))))))))))
¿O alguna vez escribir:
array(('hi'));
Eso es lo mismo sin sentido.
"Nunca use paréntesis con construcciones de lenguaje". ¿Entonces nunca usas 'array' o' exit' con un parámetro? Esto es realmente un problema de precedencia del operador, y bastante artificial en eso. No hay sugerencia en la pregunta. Verificación de un valor de retorno inexistente. Y si * do * escribe 'require ('file.php') == false', se obtiene un error fatal inmediato. Entonces no hay posibilidad de errores sutiles. –
@Metthew: con 'array' los paréntesis son parte de la construcción. Con 'require' no lo son. No puedes omitirlos. – NikiC
PHP acaba de romperse. – Gumbo