以前学过.net与java 目前自己看了看PHP 发现PHP较之前两个 好像封装的很不好,感觉好像ASP看了看PHP说明 上面说PHP也有面向对象的设计模式 MVC 等等框架。下面是这几天看PHP 中一些不懂得问题 希望高手解答疑惑!感激不尽1.PHP中有无类似List<T> 中泛型 数组的东西?我定义了一个Model(UserInfo) 
当我查询数据库所有的Userinfo结果集的时候 我该怎么获得  然后再也没显示呢?2.PHP 中如何实现 WEB与PHP代码的分离?
例如java中的servlet与jsp页面那样?

解决方案 »

  1.   

    1,
    $m = M('UserInfo');
    $list = $m->select();
    /*
    $this->assign(...$list);
    $this->display;
    */
    print_r($list);2,模板替换,就是1中的assign,其实就是将$list变量替换到预先写好的模板文件中的对应位置, 这个模板一般和当前控制器同名, 在Tpl目录下。
    MVC... 你非要像JAVA那样的MVC, 在PHP里真心没必要, 在PHP里个人感觉MVC更多的是编程设计的概念, 框架非常多, 都是爱好者写的, 不就是分层么, 谁都会, 只是何必去照某个框架规矩办事呢, PHP就应该足够简单,足够敏捷,框架是个人习惯,想用也很简单,可以说太简单。
      

  2.   

    1:  有数组
    2: 实例化后调用类方法即可。
    3:smarty/自定义模板
      

  3.   

    PHP手册#1:
    $result = mysql_query("SELECT id, name, salary FROM employees",$conn);
    while (list($id, $name, $salary) = mysql_fetch_row($result)) {
        echo " <tr>\n".
             "  <td><a href=\"info.php?id=$id\">$name</a></td>\n".
             "  <td>$salary</td>\n".
             " </tr>\n";
    }
    #不过一般将其循环的结果集放入数组,然后再页面调用,便于读懂代码,这就涉及到第二个问题:
    #php code:
    $result = mysql_query("SELECT id, name, salary FROM employees",$conn);
    $arr = array();
    while ($rows = mysql_fetch_array($result,MYSQL_ASSOC)) {
         array_push($arr,$rows);
    }#html code:
    <?php 
      if(!empty($arr)){
        foreach($arr as $array){
    ?>
    <table>
      <tr>
        <td>ID</td><td><?=$array['id']?></td><!--此处为php的短标记-->
      </tr>
      <tr>
        <td>Name</td><td><?=$array['name']?></td>
      </tr>
    </table>
    <?php
        }//end for
      }
    ?>
      

  4.   

    上面的同学们都已经从不同角度回答了一些,
    我再说两句,0. php的确不如.net/java封装得好. 因为php是一个渐变的语言, 从过程逐渐发展到OO, 它同时也是一个合作开发的开源语言, 不同的作者会带给它不同风格的东西,同时因为流行的程度,兼容也很重要. 无法像.net那样彻底抛开asp. 1. php有array,可以当list使用,spl里也提供了其它一些容器. 
    但是php里不会有泛型的概念,因为php是动态类型2. 模板. 参加楼上们的回答