Вызов функций из других функций в PHP - PullRequest
0 голосов
/ 23 февраля 2012

Эй, я устала писать

echo "varname message";
var_dump(variable);

Итак, я написала это

function debugger($var, $message) {
    echo $message;
    var_dump($var);
    echo "<br />";
}

Что, кажется, работает нормально, за исключением случаев, когда это в функции.Тогда он как бы не знает, что определена функция, потому что она определена вне функции.Вот так.

function blah() {
    $x = 2;
    debugger($x, "this is x");
}

Кроме того, я не понимаю функции, я знал, что вы не можете ссылаться на что-либо в функции вне функции, не возвращая ее, но я не знал, что вы не можете ссылаться на переменныеили функционирует вне функции, не устанавливая их в качестве параметров.Я думаю, что у меня это неправильно.

Итак, еще одна вещь, означает ли это, что переменные внутри функции не конфликтуют с переменными вне функции, если она не возвращена?

1 Ответ

0 голосов
/ 23 февраля 2012

Ваш код должен работать.Что-то еще не так в вашем коде.Попытайтесь быть более точным о том, что не работает, и попробуйте изолировать вашу проблему.Что касается других ваших вопросов:

Переменные, определенные в функции, относятся к этой функции и не будут мешать переменным из других функций.Они также не могут получить доступ к переменным, определенным вне функции.Например,

$a = 5;
function foo() {
    echo $a; //This will not work
}

Вы можете использовать ключевое слово global для «включения» переменных в область действия вашей функции, если вы не хотите передавать их в качестве аргументов:

$a = 5;
function foo() {
    global $a;
    echo $a;
}

Или, поскольку определенную версию PHP (не уверен, какую, если кто-то знает, пожалуйста, отредактируйте), вы можете использовать use:

$a = 5;
function foo() use ($a) {
    echo $a;
}
...