Я хотел бы показать 3 случайных изображения из базы данных на моем сайте. Ниже его код:Неопределенная область переменных в PHP
$query = mysql_query ("SELECT id,url FROM tbl_gallery2");
if (mysql_num_rows($query) >= 3) {
$my_array = array();
$last_array = array();
while ($r = mysql_fetch_row($query)) {
$my_array[] = $r[1];
}
function makernd() {
$number = array_rand($my_array,1);
if (in_array($number,$last_array)) {
makernd();
} else {
$last_array[] = $number;
return $number;
}
}
for($i = 1 ; $i < 3 ; $i++) {
$item = makernd();
echo '<img src="./images/slider/'.$item.'.jpg" alt="" class="slider" />';
}
}
Но всякий раз, когда я запускаю этот код, я получаю ошибку ниже:
Неопределенная переменная функции my_array в строке ... // Первая строка makernd() ,
Но я ожидал, что $ my_array станет доступным массивом для этой функции.
В чем проблема?
Вы либо передадите массив своей функции, либо определите ее как глобальный var. – jtheman
Почему вы условно определяете функцию внутри 'if'? Это не добавляет ничего, кроме путаницы. –