我的函数有一些问题,它返回一个数组,我决定尝试使用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会出现这些问题,因为它似乎遵循与返回类似的逻辑。
答案 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.
}