PHP: variable not working inside of function?
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>";
}
what am I doing wrong? why is $path printed correctly outside of the createList
fu开发者_如何学Gonction, but it's not accessible inside the function?
Because it's not defined in the function.
There are a few ways to go about this:
1) Use what Alex said by telling the function it is a global variable:
echo $path; // working
function createList($retval) {
global $path;
echo $path; // working
}
2) Define it as a constant:
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) Pass it into the function if it's specific to that function:
echo $path; // working
function createList($retval, $path) {
echo $path; // working
}
Based on how the function really works, one of those will do ya.
If you want it to work, you should use global $path
in the function, so it looks outside the function scope.
Please note that global variables are sent from hell :).
Cause $path
inside createList()
and outside it (in global scope) are two different variables. Read more about variable scope in PHP.
you must use the global modifier.
echo $path;
function createList($retval) {
global path;
echo $path; // works now :)
As an alternative to using a global variable, just pass $path
in. Of course, if you don't need the variable inside the function, don't bother!
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>";
}
Just use $GLOBALS['your variable name']
and use it anywhere in your function
精彩评论