PHP函数返回一个数组

时间:2017-04-14 18:49:33

标签: php arrays

我的函数有一些问题,它返回一个数组,我决定尝试使用OO方法来处理我的PHP代码并尝试创建一个带有一些静态函数的类,因为我决定不想访问它使用一个对象。在我的代码中,在同一个类中,我决定使用以下函数:

public static function decideCategory($tweets) {

    $tweet = $tweets;

    if(in_array($tweet, self::$food)) {
        echo "\nOur " . $tweet . " is under food\n";
    } //if statements of the same nature below as well. 

}

现在,这个函数的工作原理是它不会抛出一个错误,其中$ food被定义为顶部的数组。但是,最初我只是将$ food定义为顶部只是一个私有静态变量,然后我将以下函数传递给in_array。

public static function getFood()
    {
        self::$food = array("Wendys", "McDonalds", "Wendy's", "Chic Fil A", "Chic-Fil-a", "Burger", "TGI", "BBQ", "Grilling", "Wine", "Tasty", "Yum", "IHOP", "Pancakes", "Pizza", "Cake"
        ,"Baking");
        return self::$food;
    }

但是,它会返回一个错误,说in_array需要第二个参数的数组值,但是它会看到传递了null。为什么这样,我如何使用方法进行比较而不是变量themselvs。如果这是Java,我就会这样做,因此我无法理解为什么php会出现这些问题,因为它似乎遵循与返回类似的逻辑。

1 个答案:

答案 0 :(得分:3)

是的,它会出错,因为直到你调用self :: getFood()自我:: $ food为null如果你已声明为

static $food;

按以下方式更新您的方法

public static function decideCategory($tweets)
{
    $tweet = $tweets;
    $food = self::getFood();
    if(in_array($tweet, $food)) {
        echo "\nOur " . $tweet . " is under food\n";
    } //if statements of the same nature below as well. 
}