remove - PHP5: ¿Cómo es que una función incluida siempre hace eco primero si la llamo?
strip_tags wordpress (1)
Tengo dos archivos aquí:
ToBeIncludedFile.php
<?php
function printOut(){
echo "World!";
}
?>
MainFile.php
<?php
include("ToBeIncludedFile.php");
echo "Hello ".printOut();
?>
Esperaría "¡Hola mundo!". En cambio, entiendo esto: "¡Mundo! Hola".
Sé que si escribo return en lugar de echo, todo estará bien. ¿Es porque me hago eco de una función que ya hace eco de una cadena? Pero entonces, ¿por qué imprimiría la cadena "¡Mundo!" primero y no lanzar un error?
La razón por la que se escucha primero, es porque se llama, y luego son las cadenas "concatenadas" (más sobre eso en un segundo):
Lo que desea en ToBeIncludedFile.php
es return "World!";
no echo
En este momento, esto es lo que sucede:
- Incluyes el archivo, que no imprime nada, esto es correcto.
- Hace una concatenación de la cadena "Hello" y el valor de retorno de
printOut()
. Eso significa que primero se llama esa función: - printOut () ejecuta e imprime "¡Mundo!", sin devolver nada.
- Su secuencia de comandos principal luego concatena "Hola" con nada e imprime eso.