当前位置: 移动技术网 > IT编程>开发语言>PHP > 如何使用PHP编程说明第1/3页

如何使用PHP编程说明第1/3页

2019年05月10日  | 移动技术网IT编程  | 我要评论
但是,要成为一名php编程高手却并不容易。并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是php编程高手了,真正的php高手还需要考虑更多的

需要的时候,在程序中简单地加入下面的一条代码即可查看程序中的所使用的变量(包括数组和对象)的类型和值:
echo ss_as_string($my_variable);
使用下面的语句,我们可以直接查看程序中所有的变量的值:
echo ss_as_string($globals);
3. 控制log信息的函数
调试php程序的另外一种重要的方法就是查看log信息。如果能够方便地控制log信息的级别以及log信息的显示内容,将会给程序调试带来更多的便利。下面的几个函数可以方便地实现这个功能。
$ss_log_level = 0;
$ss_log_filename = /tmp/ss-log;
$ss_log_levels = array(
none => 0,
error => 1,
info => 2,
debug => 3);
function ss_log_set_level ($level = error) {
global $ss_log_level;
$ss_log_level = $level;
}
function ss_log ($level, $message) {
global $ss_log_level, $ss-log-filename;
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {
// 不显示log信息
return false;
}
$fd = fopen($ss_log_filename, "a+");
fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");
fclose($fd);
return true;
}
function ss_log_reset () {
global $ss_log_filename;
@unlink($ss_log_filename);
}
在上面的函数中,有四个log级别变量。运行php程序时,只有当log的级别低于预设的级别值时,log信息才可以被记录和显示出来。例如,在程序中加入如下的一条语句:
ss_log_set_level(info);
那么,运行php程序时,只有error和info级别的log信息才能被记录和显示出来,debug级的信息则被忽略了。除此之外,我们还可以设定显示的信息内容,其语句如下:
ss_log(error, "testing level error");
ss_log(info, "testing level info");
ss_log(debug, "testing level debug");
你也可以随时使用下面的语句清空log信息:
ss_log_reset();
4.速度测试函数
为了优化代码,我们需要一种可以测试代码运行时间的方法,从而来选择最优的代码。下面的函数可以测试运行代码所需的时间:
function ss_timing_start ($name = default) {
global $ss_timing_start_times;
$ss_timing_start_times[$name] = explode( , microtime());
}
function ss_timing_stop ($name = default) {
global $ss_timing_stop_times;
$ss_timing_stop_times[$name] = explode(, microtime());
}
function ss_timing_current ($name = default) {
global $ss_timing_start_times, $ss_timing_stop_times;
if (!isset($ss_timing_start_times[$name])) {
return 0;
}
if (!isset($ss_timing_stop_times[$name])) {
$stop_time = explode(, microtime());
}
else {
$stop_time = $ss_timing_stop_times[$name];
}
$current = $stop_time[1] - $ss_timing_start_times[$name][1];
$current += $stop_time[0] - $ss_timing_start_times[$name][0];
return $current;
}
现在可以轻松地检查任何一段代码的执行时间了,甚至我们可以同时使用多个计时器,只需在使用上述的几个函数时设定不同的参数作为计时器的名称就可以了。
5.调试和优化数据库的操作
对于数据库来说,运行速度是至关重要的。尽管很多书籍和文章都讲授了一些快速运行数据库的方法,但是所有的方法都必须经过实践的检验。下面我们将把phplib函数库中的query()函数和上面介绍的几个函数综合起来编写成新的query()函数,和原先的函数相比,这个函数增加了运行时间的监测功能。
function query($query_string, $halt_on_error = 1) {
$this->connect();
ss_timing_start();
$this->query_id = @mysql_query($query_string,$this->link_id);
ss_timing_stop();
ss_log(info, ss_timing_current(). secs - .$query_string);
$this->row = 0;
$this->errno = mysql_errno();
$this->error = mysql_error();
if ($halt_on_error && !$this->query_id) {
$this->halt("invalid sql: ".$query_string);
}
return $this->query_id;
}
二、编写漂亮的代码
1.将后台程序与前端程序分开
在编写php程序时,有些代码是用来处理一些事务,例如操作数据库、进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以html的格式显示在web浏览器上的php代码以及那些直接嵌入php程序的html代码。首先我们应该清晰地区分这两种代码,把前者称为后台程序,把后者称为前端程序。
因为php是一种嵌入式编程语言,也就是说,所有的php代码都可以嵌入到html代码之中,这为程序的编写带来了许多便利之处。但是,“物极必反”,如果在一段较长的程序中将php代码和html代码混合编写,这将使程序杂乱无章,不利于程序的维护和阅读。所以我们需要尽可能地将这些程序中混杂于html代码中的php代码移植出来,在专门的文件中将这些代码封装成函数,然后在html代码中使用include语句来包含这些文件,在适当的位置调用这些函数即可。
这种做法一方面使html代码和php代码都简单易读,另一方面因为html代码需要不断更新,而这种分离的方法可以确保后台程序不会被破坏。
同前端程序不同,后台程序更多追求的是稳定、结构化,极少更改,所以应该认真地设计和管理。其实,在设计台程序时,投入大量时间是值得的,“现在栽树,以后乘凉”,在以后的设计工作中将可以轻松地使用现在编写的后台程序。
2.灵活使用包含文件
正如前面所说的那样,后台程序应当安排在一系列的包含文件中。包含文件可以通过include语句在需要时动态装入,也可以在php.ini文件中通过使用auto_prepend_file指令预先自动装入。
如果使用后一种方法的话,虽然取得了一劳永逸的好处,但是也有一些缺点值得我们注意。下面的一段代码向我们展示了解析一个庞大的包含文件需要一定的时间:
require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
echo
.ss_timing_current().

?>
在上面的代码中,test.inc是一个1000行的包含文件,运行的结果显示,解析这个包含文件花费了0.6秒钟,对于一个大型网站来说,这个速度并不是可以忽略不记的。
使用包含文件的另外一个缺点是:如果一个文件中的一个语句发生错误,将会使整个网站的php程序都无法运行。所以使用起来也及其小心。
其实,对包含文件稍做处理,即可以使包含文件只在需要时进行解析。下面的代码使abc.inc文件只在程序需要时才作解析:
if ( defined( __liba_inc) ) return;
define( __liba_inc, 1 );
/*
* 代码...
*/
?>
3.使用面向对象的编程方法
php也是一种面向对象的语言,面向对象的编程方法是优秀的程序员们非常推崇的一种软件设计方法,在php编程中可以充分发挥面向对象语言的优势,对编程中的对象进行封装。在前面的代码中,我们使用了面向对象的方法,例如在管理数据库时,我们将query()函数封装进数据库类中,这极大地方便了代码的管理,增加了程序的可读性。
三、追求程序速度,而不是编程的速度
在网站建设中,程序运行速度和网页下载速度都是关系成败的重要因素。作为一名web程序员,应该更加注意代码的运行速度。下面介绍的几种方法都在不同程度上提高了代码的运行速度。
1.使用内嵌的html代码,而不是php的echo语句。
因为php是一门嵌入式web编程语言,可以将html代码和php代码相互嵌入。但是很多程序员担心在html代码中过多的使用""嵌入php代码会多次调用php解释器,从而降低了php代码的运行速度,所以宁愿使用php的echo语句来输出html代码,而不直接使用html代码。但事实却恰恰相反。每一个php页面只调用一次php解释器来解释所有的php代码,所以,只在需要时才嵌入php代码,而大多数的时候直接使用html代码输入结果,不但不会降低程序的运行速度,而且因为减少了对echo语句的解析,往往可以提高代码的运行速度。
2

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网