Я могу сделать эту работу:
function test1(){
$count = 1;
while($count < 8){
echo "Hello world1 <br>";
$count++;
}
}
test1();
И я могу сделать эту работу:
while($row = mysqli_fetch_array($result)){
echo "Hello world2<br>";
}
Но я не могу сделать эту работу:
function test2(){
while($row = mysqli_fetch_array($result)){
echo "Hello world3 <br>";
}
}
test2();
Часть echo является заполнителем для чего-то другого, но почему не работает функция test2?
Единственное, о чем я могу думать, это то, что переменная результата не определена до того, как вы вызовете свою функцию. Вы можете попробовать передать его как параметр в вашей функции test2. Подобно:
function test2($result){
while($row = mysqli_fetch_array($result)){
echo "Hello world3 <br>";
}
}
test2($result);
Так что это, вероятно, проблема сферы. Попробуйте повторить $row
перед циклом while как одиночный запрос. Я могу представить, что ты еще ничего не увидишь. Я думаю, что test2
Функция не включает в себя правильную информацию о БД, которую вы имели, когда не было задействовано ни одной функции
Где $result
приходящий из?
Функция не показывает, что $result
будет равно
Определение объема из вики:
В компьютерном программировании область привязки имени — ассоциация имени с сущностью, такой как переменная, — это часть компьютерной программы, где привязка действительна: где имя может использоваться для ссылки на сущность.
Другими словами, когда у вас есть функция
$test = 10;
foo();
echo $test; // = 10 not 1
foo(){
$test = 1;
}
Это потому что внутри $test
ничего не знает о внешнем тесте.
Если переменная не объявлена как global variable
(которая является переменной, которая
можно понять по всем функциям). Но если она не была объявлена как таковая, эта функция в некотором смысле не будет знать внешнему «миру».
Вы также можете передать переменную в качестве параметра, чтобы функция содержала эти результаты в своем scope
Что вы можете сделать, это:
function func($result, $db){
while($row = $db->mysqli_fetch_array($result)){
echo "Hello world3 <br>";
}
}
Теперь scope
функции содержит $result
и $db
так что вы можете использовать их в функции