日期:2014-05-20  浏览次数:20742 次

ZendFramework学习第二章(为变量赋值)

这一节讲的是控制器如何向视图传递变量。看了上一节代码的同学估计已经知道如何给变量赋值了,我在这里简单的举例说明下:

  public function indexAction()
    {
        // action body
    
     //为变量赋值
     $this->view->a = "Hay";
     $this->view->b = "bbb";
     $this->view->c = "ccc";
    }

 

 

从上边的程序你可以看出来,用此方式赋值特麻烦,要多次赋值。可以将变量放进一个数组或者对象中。assign()方法呢就允许通过数组或者对象赋值:

 public function indexAction()
    {
        // action body

     $array = array(
       'a' => "Hay",
       'b' => "bbb",
       'c' => "ccc",
       );
       $this->view->assign($array);
    }

其效果和上边效果是一样的,那么通过对象赋值就有点小不一样了,就是要先把对象转型为数组:

 

    public function indexAction()
    {
        // action body
     $obj = new stdClass();
     $obj->a = "Hay";
     $obj->b= "bbb";
     $obj->c = "ccc";
     $this->view->assign((array) $obj);
    }

assign()方法还有一种用法就是使用两个字符串作为assign()方法的参数。这样第一个参数为赋值的变量名,第二个参数作为对应的值。如下:

     $this->view->assign('a',"Hay");
     $this->view->assign('b',"bbb");
     $this->view->assign('c',"ccc");
     

 

至于视图部分代码如下:index.phtml

<?php
echo $this->a."<br>";
echo $this->b."<br><br><br><br>";
echo $this->c."<br>";
?>