if(!empty(trim($_POST['post']))){ }
這個錯誤:
Fatal error: Can't use function return value in write context in ...
如何解決,並避免做2個檢查(修剪,然後空)?
我想檢查POST是否不僅僅是一個空格。
if(!empty(trim($_POST['post']))){ }
這個錯誤:
Fatal error: Can't use function return value in write context in ...
如何解決,並避免做2個檢查(修剪,然後空)?
我想檢查POST是否不僅僅是一個空格。
在documentation它實際上具體解釋了這個問題,然後給你一個替代解決方案。您可以使用
trim($name) == false.
很明顯,爲什麼PHP文檔甚至建議這種解決方案超越了我。爲什麼促進不必要的強制類型? (我不是說它慢,但這是問題的原理!) – cmbuckley 2013-05-02 23:04:27
我不確定,但它是最短的解決方案。 – christopher 2013-05-03 09:18:47
'!trim($ name)'更短:-)就此而言,trim($ name)==='''! – cmbuckley 2013-05-11 13:05:46
if (trim($_POST['post'])) {
功能上與您似乎試圖做的相同。沒有必要撥打!empty
你不能使用的功能裏面isset
,empty
語句。只需將修剪結果分配給一個變量即可。
$r = trim($_POST['blop']);
if(!empty($r))....
編輯:在此之前PHP 5.5
if (trim($_POST['post']) !== "") {
// this is the same
}
在PHP中,函數isset()
和empty()
是彪測試變量。
這意味着這個
if(empty("someText")) { ... }
或該
if(isset(somefunction(args))) { ... }
不作任何SENCE,因爲函數的結果總是被定義,e.t.c.
這些功能用於告訴閹一個變量被定義或沒有,所以參數必須我一個變量,或數組索引,那麼它會檢查指數(工作在對象上也是如此),像
if(!empty($_POST["mydata"])) {
//do something
} else {
echo "Wrong input";
}
你有沒有實際上閱讀[文檔頁面](http://php.net/manual/en/function.empty.php)?它清楚地表明,只有變量在PHP中使用'empty()'<5.5 – 2013-05-02 14:41:45
請參閱此答案:http://stackoverflow.com/a/2173318/561731 – Neal 2013-05-02 14:42:19
我想檢查POST是否不僅僅是一個空格。 – xRobot 2013-05-02 14:43:55