PHP включает в себя файл, который включает в себя странную проблему файла!
Я сталкиваюсь со странной проблемой, включая файлы php. Позвольте мне показать вам код:
// constants.php
$MYSQL_HOST_PORT = 'localhost:3306';
// functions.php
include 'constants.php';
function getVar() {
echo $MYSQL_HOST_PORT;
}
// doSth.php
include 'functions.php';
echo $MYSQL_HOST_PORT; // The variable is visible and echoed normally as expected!
echo getVar(); // The variable is not echoed! its "".
Есть идеи?
3 ответа
Для одного echo
в echo getVar();
никогда ничего не печатать, потому что getVar
не возвращает значение.
Во-вторых, если вы (по какой-то причине) хотите getVar()
сам для корректной работы нужно добавить global $MYSQL_HOST_PORT;
линия, чтобы она выглядела $MYSQL_HOST_PORT
в глобальном масштабе.
Вместо того, чтобы глобализировать $MYSQL_HOST_PORT
переменная, почему бы просто не сделать ее постоянной?
// constants.php
define('MYSQL_HOST_PORT', 'localhost:3306');
Предоставлена constants.php
включен, вы можете сослаться на MYSQL_HOST_PORT
постоянно где угодно.
Как указано в ответе Zerocrate, вопрос является ограничительным. Прилагаемый объем getVar()
функция не включает $MYSQL_HOST_PORT
,
Одна вещь, которую я вижу неправильно, это то, что с линией echo getVar();
вы не получаете возвращаемое значение из функции, поэтому вы можете просто написать getVar();
само собой.