1

我有一个多数组的想法,我的文件被分类到不同的组/数组中。认为这将是检查我们在里面的文件的最简单和最干净的方法,并且导航状态是否应该在导航选项卡 1,2 或 3 上设置为活动?

我有这个数组;

Array
(
[home] => Array
    (
        [0] => index.php
        [1] => something.php
    )

[tour] => Array
    (
        [0] => tour.php
    )

[tutorials] => Array
    (
        [0] => tutorials.php
    )
)

这个想法是,如果我点击主页导航按钮,它会转到 index.php 并且一个函数会检查它是需要活动状态的主页按钮还是 Tour 按钮。在这种情况下,它的主页按钮。

[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 将数组拉入内部。谢谢@坟墓!

4

1 回答 1

0

这个错误的意思是第二个参数不是一个数组,因此你可以尝试这样的事情:

if (is_array($topNavigationPages[$tap])) {
    if(in_array($filename, $topNavigationPages[$tap])) {
        return 1;
    }
}
return 0;

您可以使用严格的 and 运算符在不嵌套 if 循环的情况下执行此操作。

希望这可以帮助

注意:要解决范围问题,您可以使用全局值或常量。要使用常量,请使用“定义”函数,对于全局变量,请在文件开头和使用它的每个后续函数中声明变量。我强烈建议使用常量。

于 2013-11-13T23:15:27.160 回答