我有一个多阵列的想法,我的文件被分类到不同的组/数组。 认为这将是检查我们所在文件的最简单,最干净的方式,导航状态是否应在导航选项卡1,2或3上设置为活动状态?
我有这个数组;
Array
(
[home] => Array
(
[0] => index.php
[1] => something.php
)
[tour] => Array
(
[0] => tour.php
)
[tutorials] => Array
(
[0] => tutorials.php
)
)
我的想法是,如果我点击主页导航按钮,它会转到index.php并且一个函数会检查它是否是需要活动状态的Home按钮,或者是Tour按钮。在这种情况下,它是Home按钮。
[home] => Array
(
[0] => index.php
我做了这个功能
function findNavigationActive($tap, $filename) {
if(in_array($filename, $topNavigationPages[$tap])) {
return 1;
}
return 0;
}
它应检查,如果index.php($ filename)在Home($ tap)数组或navi-tap中,则返回1.不幸的是我得到了这个错误;
警告:in_array()期望参数2为数组,在第21行的/project/../../topNavigationHandler.php中给出为null
我做错了什么?
固定
使用全球$ topNavigationPages;在函数外部,并在下面设置$ topNavigationPages值(数组),并再次使用函数内部的全局$ topNavigationPages将数组拉入内部。 谢谢@tombs!
答案 0 :(得分:0)
此错误意味着第二个参数不是数组,因此您可以尝试这样的事情。:
if (is_array($topNavigationPages[$tap])) {
if(in_array($filename, $topNavigationPages[$tap])) {
return 1;
}
}
return 0;
您可以在不使用strict和operator嵌套if循环的情况下执行此操作。
希望这有帮助
注意: 要解决范围问题,可以使用全局值或常量。要使用常量,请使用'define'函数,对于全局在文件的开头和您使用它的每个后续函数中声明变量。我强烈建议使用常量。