我面临一个小问题,我想我忽略了一切。我想要一个回显数据库中所有类别列表的函数。
<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/jquery.js"></script
<script src="js/bootstrap.js"></script>
但是,我收到以下错误:
$host = "localhost";
$dbuser = "user";
$dbpass = "password";
$dbname = "name";
$dbcon = mysqli_connect($host, $dbuser, $dbpass, $dbname) or die(mysqli_error());
$multi_array = array();
$query = mysqli_query($dbcon, 'SELECT * FROM `fdf_content`');
while($output = mysqli_fetch_array($query)){
$multi_array[] = $output;
}
function get_cats($multi_array){
foreach($multi_array as $cats){
echo $cats['category'];
}
}
和
Missing argument 1 for get_cats()
Undefined variable: multi_array
问题是该函数中的数组未定义,但我不知道为什么。提前谢谢!
答案 0 :(得分:1)
PHP中的scope of a variable是创建(初始化/修改)的函数。在任何函数之外创建/修改的变量都是全局变量,它们只在函数外部可见。
让函数作为参数接收要使用的值:
function get_cats(array $categories){
foreach ($categories as $cats){
echo $cats, " ";
}
}
在函数调用上传递所需的值作为参数:
$multi_array = array();
while ($output = mysqli_fetch_array($query)) {
$multi_array[] = $output;
}
// Call the function that prints the content of $multi_array
get_cats($multi_array);
这样您可以使用不同的值重用get_cats()
函数:
$fruits = array('apple', 'banana', 'orange');
get_cats($fruits);
// Will print:
// apple banana orange
答案 1 :(得分:-1)
如果要获得多维数组,请按以下方式使用:
function get_cats() {
foreach($multi_array as $cats->$value){
echo $value;
}}
如果以上不起作用,请在下面进行测试:
function get_cats() {
foreach($multi_array as $cats->$value){
print_r($value);
}}
要再次检查值是数组还是对象。
答案 2 :(得分:-1)
你有语法错误! 试试这个
function get_cats(){
foreach($multi_array as $cats)
{
echo $cats;
}
}