我的函數返回一個數組時遇到了一些問題,我決定嘗試使用面向對象的方法來創建我的PHP代碼,並嘗試使用一些靜態函數創建一個類,因爲我決定不用不想使用對象訪問它。在我的代碼,同一個類中,我決定做以下功能:返回數組的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.
}
現在,這個功能在某種意義上說,它不會拋出其中$食物在頂部definded作爲數組的錯誤的原理。然而,最初我只是將$ 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預計,其第二個參數數組值,但代替它看到一個空的傳遞來代替。爲什麼是這樣,我怎樣才能使用方法來做我的比較,而不是變量themselvs。如果這是Java這將是我會怎麼做,因此我不明白爲什麼PHP會有這些問題,因爲它似乎遵循類似的回報邏輯。
我會因爲錯誤強烈懷疑這是[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378)。你想在這裏做什麼? – Machavity
如果你想使用面向對象的方法,那麼你爲什麼試圖避免使用一個對象? –
儘管使用Statics並不完全在面向對象上,但它仍然從類名訪問它,而不是僅僅調用函數 – SomeStudent