0


我知道这个问题已经回答了很多次,但是我有一些我无法解决的问题。

我收到了几个关于在特定页面和特定行上分配返回值的警告。但是当我打开那个页面时,请求的行要么是空的,要么是在评论下,要么是其他的。这是一个警告和与之相关的页面代码:

不推荐使用:在第 25 行的 /home/saltushr/public_html/_classes/hr/dimedia/framework/Controller.class.php 中不推荐使用通过引用分配 new 的返回值

不推荐使用:在第 26 行的 /home/saltushr/public_html/_classes/hr/dimedia/framework/Controller.class.php 中不推荐使用通过引用分配 new 的返回值

代码是:

<?php
/**
 * This clas instantiates the required {@link Model} and {@link View} objects.
 *
 * @author Berislav Lopac berislav.lopac@dimedia.hr 
 * @version 1.0
 */
class Controller {
    var $model;   
    var $view;

    /**
     * The constructor.
     * Instantiates the {@link Model} and {@link View} objects.
     *
     * @param $_task    A String setting the base name of the instantiated objects.
     * @param $_db      ADOConnection object containing the connection to the database.
     * @param $_input   An Array with the input values required by the Model (usually the $_REQUEST array).
     */
    function &Controller($_name, &$_db, $_input) {

        $model = $_name . "Model";
        $view  = $_name . "View";
        $this->model =& new $model($_db, $_input);
        $this->view  =& new $view($this->model);
    }

    /**
     * Returns the associated {@link View} object.
     * @return View
     */
    function &getView() {
        return $this->view;
    }
}
?>

如您所见,第 25 和 26 行是空的:

21 变量$模型;
22
23 变量$视图;
24
25
26

27 /**

谁能帮我理解这一切是怎么回事?我在理解 PHP 方面还很陌生,可以使用一些帮助。谢谢。

4

2 回答 2

1

改变

$this->model =& new $model($_db, $_input);

$this->view  =& new $view($this->model);

$this->model =new $model($_db, $_input);

$this->view  =new $view($this->model);
于 2013-05-29T11:03:31.330 回答
1

您正在分配一个新实例作为参考,根据设计,这不是一个好的解决方案。相反,只要对象请求特定资源(例如您的getView方法),就将对象作为引用传递。

有些对象必须保存初始实例。

于 2013-05-29T11:04:24.760 回答