PHP:返回函数值本身不起作用

时间:2017-05-04 03:03:19

标签: php

我在类中有一个函数,每次使用时我都会在foreach中得到错误的未定义函数in_array_r()。但是当我在课外使用它作为正常功能时,它可以工作。我想在课堂内使用它,所以我不会在每一页都打电话。

public function in_array_r($needle, $haystack, $strict = false) {
        foreach ($haystack as $item) {
            if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
                return true;
            }
        }
        return false;
    }

2 个答案:

答案 0 :(得分:1)

该函数是递归的 - 它正在调用自身。当您将其放入类(作为方法)时,您需要更新方法体内in_array_r()的引用。

此:

. . .(is_array($item) && in_array_r($needle, . . .

变为:

. . .(is_array($item) && $this->in_array_r($needle, . . .

答案 1 :(得分:1)

您需要将方法分配给对象。

$this->in_array_r();