讨论一下PHP代码与效率的问题

linhaibo 2004-03-24 10:23:07
以下是我自己制订的PHP代码规范,但不知道执行效率如何:
希望大家把自己PHP代码风格列出来,分享一下.



1.验证所有用户传递的参数,包括程序本身所需要传递的参数!
2.如果是整数的参数,必须验证接收到的是否是整数:is_numeric()
3.尽量使用 $_GET、$_POST代替 $_REQUEST,以提高代码执行。
4.尽量做到PHP脚本和客户端HTML代码分离:
5.使用动态包含文件,提高页面解析效率

PHP和HTML混合使用的时候:
<?php
class php_run{
var $_ID,$_Account; //定义页面的全局变量
function php_run(){
//初始化参数,验证传递给页面的参数
if(!isset($_GET["id"]) || !is_numeric($_GET["id"])){
header("Location: error.php?id=1");
exit;
}
else{
$this->_ID=$_GET["id"];
}
//动态包含文件
include("lib/conn.php");
include("class/page.class.php");
}
function pro_page(){
$newpage= new SplitPage();
$newpage->_PageCount=20;
$newpage->_TableName="table_user";
//...
}
}
$PageMain = new php_run();
?>
<html>
<head>
<title>标题</title>
</head>
<body>
当前页面的ID是<?php echo $PageMain->_ID;?><br>
<?php $PageMain->pro_page()?>
</body>
</html>
...全文
17 点赞 收藏 19
写回复
19 条回复
ustb 2004年03月25日
to: jaexc(大飞)
关于引用,可以参看手册。

to:linhaibo (会写程序的猪)
如果只是一个规范,建议去下一份华为编码规范,里面讲得很清楚了。
为什么不把参数的验证放到一个方法里来实现呢?
要实现php与html分离为什么不用模板呢?
验证的参数越多,效率就越低,是否有必要对所有的参数进行验证,最简单的办法就是传最少的参数。
回复 点赞
kurt1983 2004年03月25日
用类的好处太多了,可惜我用的很菜。
回复 点赞
lavaguo 2004年03月25日
我来这里学习的:)
回复 点赞
msroom 2004年03月25日
我喜欢使用类
回复 点赞
多菜鸟 2004年03月24日
up也差不多,少用if语句就会有比较好的效率吧。
回复 点赞
linhaibo 2004年03月24日
up
回复 点赞
chinaworker 2004年03月24日
http://www.phpe.net/articles/387.shtml
回复 点赞
linhaibo 2004年03月24日
To: chinaworker

$PageMain = &new php_run();
对象的引用 的优势是什么?
回复 点赞
linhaibo 2004年03月24日
is_numeric($_GET["id"]) 测试过是可以的


countstars(深空) :
判断ID是否是个有效的ID就需要连接库,查询
动态包含就没有了效果
回复 点赞
chinaworker 2004年03月24日
To: countstars(深空)

嘿嘿......


OTHER:

$newpage= &new SplitPage();

$PageMain = &new php_run();
回复 点赞
countstars 2004年03月24日
to: chinaworker(网络混混 Hrcn.CN)
is_numeric($_GET["id"])
错了~~~~~~~$_GET的值始终都是
String

is_numeric函数就是来判断字符串化的数值,比如
$num = "123";
is_numeric($num) 返回 true

is_numeric
(PHP 4 )

is_numeric -- 检测变量是否为数字或数字字符串
描述
bool is_numeric ( mixed var)


如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。



回复 点赞
hncslsy 2004年03月24日
up一下
回复 点赞
chairj 2004年03月24日
差不多,class我一般单独放一个文件,便于维护.
回复 点赞
countstars 2004年03月24日
呵呵,你的ID判断恐怕不够吧?其实我觉得 (int)($_GET["id"]),这样就够了
但是下面要先判断这个id是否有用,即使是数字也不一定有用,比如可以先来个查询行,如果返回0,则ID无效,这样就不用下列复杂操作了。
回复 点赞
chinaworker 2004年03月24日
is_numeric($_GET["id"])

错了~~~~~~~$_GET的值始终都是

String
回复 点赞
jaexc 2004年03月24日
我感觉用类很方便 但没感觉首速度问题
还请教大家拉:

To: chinaworker

$PageMain = &new php_run();
对象的引用 的优势是什么?
回复 点赞
52juanjuan 2004年03月24日
我同意思上面晓的说法,尽量用通用类来处理事务,也就是说尽量用面向对像的方法解决问题
回复 点赞
xylegend 2004年03月24日
用include和类的方式是很有好处,我也喜欢这样做
比如对于涉及到数据库操作的,总是使用一个数据库通用操作类来实现
用include导进来;对于认证也是在具体的需要验证的页面使用include包含进来验证代码
……
回复 点赞
mistjin 2004年03月24日
UP
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9735

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告