0

kohana フレームワークを使用して、次のようにすると:

$this->view->bind('errors', $errors = array());

PHP エラー ErrorException "[ Strict ]: Only variables should be passed by reference" が表示されます

私が行った場合:

$this->view->bind('errors', $errors);
$errors = array();

エラーは発生しません。

エラーを回避しても大丈夫ですか?これにより問題が発生しますか?

ありがとう!

4

1 に答える 1

1

Kohana では、setまたはを使用して、2 つの方法で変数を渡すことができますbindドキュメント
から:

set() と bind() の唯一の違いは、bind() が参照によって変数を割り当てることです。変数を定義する前に bind() すると、変数は NULL の値で作成されます。

変数がビューに常に存在するとは限らない場合 ( post 条件で定義する変数のbindように)、少し安全です。errors小さな例:

public function action_roadtrip()
{
    $post = $this->request->post();
    if (!empty($post))
    {
        try
        {
            // Do some ORM validation here
        }
        catch (ORM_Validation_Exception $e)
        {
            $errors = $e->errors('');
        }
    }
    $view = View::factory('some_view_name')->bind('errors', $errors);
    $this->request->response = $view;
}

POST 中にを定義してもerrors、ビューで GET を使用しても安全であることに注意してください。

注意すべきもう 1 つの点は、変数のみをサポートすることです (空のbind関数と同様の動作)。 式を渡したい場合は、 を使用します。次の違いに注意してください。
setbind

$this->view->set('errors', $errors = array());
于 2013-07-09T12:21:30.820 に答える