echo $path; //working
function createList($retval) {
echo $path; //not working
print "<form method='POST' action='' enctype='multipart/form-data'>";
foreach ($retval as $value) {
print "<input type='checkbox' name='deletefiles[]' id='$value' value='$value'>$value<br>";
}
print "<input class='submit' name='deleteBtn' type='submit' value='Datei(en) löschen'>";
print "</form>";
}
что я делаю неправильно? почему $path печатается правильно за пределами createList
функция, но это не доступно в функции?
Есть несколько способов сделать это:
1) Используйте то, что сказал Алекс, сообщив функции, что это глобальная переменная:
echo $path; // working
function createList($retval) {
global $path;
echo $path; // working
2) Определите ее как константу:
define(PATH, "/my/test/path"); // You can put this in an include file as well.
echo PATH; // working
function createList($retval) {
echo PATH; // working
3) Передайте ее в функцию, если она специфична для этой функции:
echo $path; // working
function createList($retval, $path) {
echo $path; // working
В зависимости от того, как функция действительно работает, одна из них подойдет.
Причина $ path
внутри createList ()
и за его пределами (в глобальной области) - две разные переменные. Узнайте больше об области видимости переменной в PHP .
Если вы хотите, чтобы это работало, вы должны использовать global $path
в функции, чтобы она выглядела вне области видимости функции.
Обратите внимание, что глобальные переменные посылаются из ада :).
вы должны использовать модификатор global.
echo $path;
function createList($retval) {
global path;
echo $path; // works now :)
Вместо использования глобальной переменной просто передайте $ path
. Конечно, если вам не нужна переменная внутри функции, не беспокойтесь!
echo $path;
function createList($retval, $path) {
echo $path;
print "<form method='POST' action='' enctype='multipart/form-data'>";
foreach ($retval as $value) {
print "<input type='checkbox' name='deletefiles[]' id='$value' value='$value'>$value<br>";
}
print "<input class='submit' name='deleteBtn' type='submit' value='Datei(en) löschen'>";
print "</form>";
}