Me he dado cuenta de que, aunque la mayor parte de mi experiencia consiste en escribir aplicaciones PHP, me encuentro cometiendo "errores de principiante" de vez en cuando. Esto porque PHP es un lenguaje que ha crecido de manera muy orgánica y, como tal, tiene algunas peculiaridades, caprichos y trampas que no conozco.peculiaridades y errores de PHP
Me gustaría que esta pregunta sea una wiki para todos aquellos que quieran conocer las trampas y excepciones de PHP de lo que podríamos creer que son las reglas. Pero, por favor, no escriba las respuestas generales como:
Algunas funciones reciben como argumentos
$needle
,$haystack
, mientras que algunos como$haystack
,$needle
.
Indique los nombres de las funciones. Tienes algunas respuestas mías como ejemplos. Ah, y agrega una trampa por respuesta. De esta forma, veremos cuál es el más despreciado de todos ellos (mediante votación).
No quiero comenzar una guerra de llamas, no se preocupe por el tema. Si desea escribir algunas cosas malas sobre PHP, hágalo como un comentario a la respuesta respectiva.
Esperamos que esta wiki sea de ayuda para todos nosotros, principiantes y expertos.
Actualización:
Después del comentario de Andrew Moore Estoy pensando que la respuesta también debe contener una solución o solución para la trampa.
A partir de php 5.3.3 ya no puede usar el nombre de clase como el nombre del constructor si usa namespaces. Debes usar '__construct'. No se emitirán advertencias, pero al llamar a 'new MyClass' no se ejecutará el código en su constructor. Hurra por un buen escollo. – nus