phalcon 控制器中 setVar 和 Magic setter 有什么区别

What's the difference between setVar and Magic setter in phalcon Controllers

阅读 phalcon 的文档 https://docs.phalconphp.com/en/3.0.0/reference/views.html 我发现可以通过两种不同的方式将变量从控制器传递到视图:

  1. 使用 setVar()

    $this->view->setVar("username", $user->username);
    $this->view->setVar("posts",    $posts;
    
  2. 使用魔法setter

    $this->view->username = $user->username;
    $this->view->posts    = $posts;
    

两者有什么区别,有什么神奇之处setter真的,我找不到它是什么

区别在于性能。最好使用 setVar 方法。当然,在现实世界中,设置两个变量的区别将是 none。

唯一的区别是 return 值。

方法setVar return $this, magic setter return void.

检查这个: https://github.com/phalcon/cphalcon/blob/master/phalcon/mvc/view.zep#L1373 并与之比较:https://github.com/phalcon/cphalcon/blob/master/phalcon/mvc/view.zep#L450