У меня есть два файла:
ToBeIncludedFile.php
<?php function printOut(){ echo "World!"; } ?>
mainfile.php
<?php include("ToBeIncludedFile.php"); echo "Hello ".printOut(); ?>
в<?php include("ToBeIncludedFile.php"); echo "Hello ".printOut(); ?>
Я бы ожидал «Hello World!». Вместо этого я получаю следующее: «Мир! Привет».
Я знаю, если я напишу return вместо echo, тогда все будет хорошо. Это потому, что я повторяю функцию, которая уже вторит строке? Но зачем тогда печатать строку «Мир!» сначала и не бросать ошибку?
Причина, по которой это происходит, заключается в том, что она называется, а затем строки «конкатенированы» (более того, через секунду):
То, что вы хотите в ToBeIncludedFile.php
– это return "World!";
, а не эхо.
Прямо сейчас, это то, что происходит:
printOut()
. Это означает, что сначала эта функция называется: