0

だから私はフォームを提出していて、フィールドが空かどうかをチェックしようとしています、そして私はこれをします:

if(empty($this->_getParam('my_field')))

そしてそれは動作しませんが、私が使用するだけでこれは動作します$_POST['my_field]

<b>Fatal error</b>: Can't use method return value in write context in....

動作するためにこれをどのように行う必要があり$this->_getParamますか?フレームワークで使用するのはあまり良いオプションではないと思うので$_POST

4

4 に答える 4

4

これはあなたの問題です:書き込みコンテキストでメソッドの戻り値を使用できません

これを行う必要がある理由は次のとおりです。書き込みコンテキストでメソッドの戻り値を使用できない

empty()を使用するには、最初に戻り値を取得する必要があります

$field = $this->_getParam('my_field');
if(empty($field)){
  //is empty
}

(更新:これはPHPバージョン> = 5.5の問題ではありません)empty($ this-> _ getParam('my_field'))は問題なく機能します。

于 2012-11-08T21:24:25.117 に答える
1

empty--like isset--は実際の関数ではなく、言語構造です。したがって、変数は唯一の引数としてのみ使用できます(式や関数の結果はありません)。

ただし、一時変数を使用できます。

$my_field = $this->_getParam('my_field');
if(empty($my_field))
....
于 2012-11-08T21:25:10.763 に答える
1

他の答えは正しいです。_getParam()代替案は、への呼び出しにデフォルトを提供することですnull。その後、あなたは呼び出すことができます

is_null($this->_getParam('myfield',null))

Zendはすでにそのパラメーターの空性を判別しているため、この方法が望ましい場合があります。

于 2012-11-08T21:29:54.497 に答える
0

一時変数を使用できます

$field = $this->_getParam('my_field');

if(empty($field)){
  //you code here
}
于 2012-11-08T22:24:07.120 に答える