PHP新手疑惑
以前学过.net与java
目前自己看了看PHP 发现PHP较之前两个 好像封装的很不好,感觉好像ASP
看了看PHP说明 上面说PHP也有面向对象的设计模式 MVC 等等框架。
下面是这几天看PHP 中一些不懂得问题 希望高手解答疑惑!感激不尽
1.PHP中有无类似List
我定义了一个Model(UserInfo)
当我查询数据库所有的Userinfo结果集的时候 我该怎么获得 然后再也没显示呢?
2.PHP 中如何实现 WEB与PHP代码的分离?
例如java中的servlet与jsp页面那样?
------解决方案--------------------
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就应该足够简单,足够敏捷,框架是个人习惯,想用也很简单,可以说太简单。
------解决方案--------------------
1: 有数组
2: 实例化后调用类方法即可。
3:smarty/自定义模板
------解决方案--------------------
回答的太精辟了
------解决方案--------------------
PHP手册PHP code
#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="%5C%22info.php?id=%24id%5C%22">$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){?>
ID
=$array['id']?>
Name
=$array['name']?>
------解决方案--------------------
上面的同学们都已经从不同角度回答了一些,
我再说两句,
0. php的确不如.net/java封装得好. 因为php是一个渐变的语言, 从过程逐渐发展到OO, 它同时也是一个合作开发的开源语言, 不同的作者会带给它不同风格的东西,同时因为流行的程度,兼容也很重要. 无法像.net那样彻底抛开asp.
1. php有array,可以当list使用,spl里也提供了其它一些容器.
但是php里不会有泛型的概念,因为php是动态类型
2. 模板. 参加楼上们的回答