`
javaeyeren
  • 浏览: 126564 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

成为PHP编程高手应该遵循的三个准则

阅读更多

PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。前不久的一份权威调查表明,现在已经有31.6%的网站使用PHP作为主要的服务器端编程语言。

但是,要成为一名PHP编程高手却并不容易。并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。
1.懒惰是金
2.编写漂亮的代码
3.追求程序的速度,而不是编程的速度
一、懒惰是金
做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了,所以才应该在编程时学会偷懒。
对于一个程序员来说,懒惰的方法有两种:其一,大胆使用现成的别人的程序代码,把这些代码融入到你自己的程序或者项目中去。其二是编写一些有用的代码建立一个函数库,在将来编写程序时可以顺手拈来,省去了许多重复的劳动,自然就可以懒惰一点了。
这两种偷懒的方法都非常适合PHP程序员了。
首先,PHP是在自由开放的环境中诞生和成长的一门语言。在世界各地,有成千上万的程序员,他们一直在为PHP的完美而不断奋斗,他们也愿意和别人分享自己的聪明才智和自己编写的代码。你每天都可以从一些PHP网站、邮件列表、新闻组发现大量的优秀的程序代码。这样说,我并不是鼓励你整天等着让别人为你编写代码,但是你可以“站在伟人的肩膀上”,充分发扬“拿来主义”,聪明地应用别人的程序代码可以节省你大量时间。其次,在PHP中,你可以方便地建立自己的函数库,这样可以在你以后编写程序时省去很多麻烦。
下面笔者为大家介绍几个通用的函数,这些函数有的来自网上的一些开放源代码的项目,有的精选自邮件列表。如果你能把它们加入到你自己的函数库中,迟早你将会发现自己受益无穷。
1.通用数据库处理函数
和其它的CGI函数相比,PHP的优点之一是具有很强大的数据库处理能力。但是,在PHP中,对于不同的数据库都使用一些特定的函数来专门处理,缺少通用的数据库处理函数。这大大降低了程序代码的可移植性,这也为初学编程的朋友带来了很多不便。
在网上,许多程序员都通过封装类解决了这个问题。他们编写了统一的函数用来处理任何流行的数据库——不管是在Linux世界深受欢迎的Mysql还是在Windows平台上广泛流行的SqlServer。就笔者个人来说,非常喜欢使用这些函数,因为可以直接使用一些简单的诸如"query"、"next_record"之类的函数,而不需要考虑数据库的连接、数据库句柄这些复杂的东西,更不需要考虑使用的是何种数据库。
2.变量调试函数
PHP程序的调试一直是一件让人头疼的事,它既不像VB等高级语言那样有集成的编译调试环境,也不想Perl那样可以在Linux或者DOS环境下直接运行。其实,我们完全可以通过灵活地使用echo语句来完成对PHP的调试工作。
下面的几个函数可以让你随时查看程序中任何变量的类型及其值。
function ss_array_as_string (&$array, $column = 0) {
$str = "Array(
n";
while(list($var, $val) = each($array)){
for ($i = 0; $i < $column+1; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
$str .= $var. ==> ;
$str .= ss_as_string($val, $column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return "$object";
}
else {
$str = $object->classname."(
n";
while (list(,$var) = each($object->persistent_slots)) {
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
global $$var;
$str .= $var. ==> ;
$str .= ss_as_string($$var, column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return "Double(".$thing.")";
}
elseif (is_long($thing)) {
return "Long(".$thing.")";
}
elseif (is_string($thing)) {
return "String(".$thing.")";
}
else {
return "Unknown(".$thing.")";
}
}
需要的时候,在程序中简单地加入下面的一条代码即可查看程序中的所使用的变量(包括数组和对象)的类型和值:
echo ss_as_string($my_variable);
使用下面的语句,我们可以直接查看程序中所有的变量的值 1T6-530920-115
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信息 1z0-147
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();

分享到:
评论

相关推荐

    PHP之安全编程.pdf

    PHP 之安全编程是指在使用 PHP 开发 web 应用程序时,为了保护服务器和用户数据免受不良攻击和恶意活动的影响,需要遵循的一些安全准则和 best practice。下面是从 PHP 之安全编程中提取的一些关键知识点: 一、...

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

    以下是三个关键的准则,帮助你从PHP编程的新手逐渐成长为高手。 1. **懒惰是金** 在编程世界中,“懒惰”并不意味着逃避工作,而是提倡高效和避免重复劳动。一个聪明的程序员会寻找并利用现有的资源,例如他人的...

    10天学会php

    标题与描述中的核心...遵循“懒惰是金”、“编写漂亮的代码”和“追求程序的速度”这三个准则,能够显著提升编程效率和代码质量。此外,通过具体示例如数据库处理和变量调试函数的运用,加深了对PHP编程实践的理解。

    基于PHP的LzCMS博客系统php版源码.zip

    LzCMS是一款基于PHP开发的开源博客系统,其设计目标是提供一个轻量级、高效且易于维护的平台,让使用者能够快速搭建个人或者企业博客。...同时,遵循开源协议,尊重和回馈社区也是使用开源软件的重要准则。

    php开发规范

    本规范分为强制、推荐和参考三个级别,强制类型为必须遵循的规则,推荐类型则视具体项目情况灵活运用,参考类型则提供指导性建议。 **1. 编程规约** 1.1 **命名规约** - 变量、函数、类、常量等命名应清晰、简洁...

    PHP代码规范

    在编写PHP代码时,遵循一套代码规范是非常重要的,它不仅可以提高代码的可读性,也便于团队协作。以下是一系列关于PHP代码规范的具体要求和建议: ...这些规范是开发者在实际编程过程中应牢记的基本准则。

    php 编码规范 (zend开发中文翻译)

    这份文档详细阐述了四个关键主题,包括PHP文件标准、命名规范、编程风格和文档描述。 **A.1. 概述** PHP编码规范的制定旨在创建一致、清晰和易于理解的代码。规范的目的是提高代码的可读性,降低团队成员之间的...

    基于PHP的开源易支付系统源码.zip

    这个标题揭示了我们要讨论的核心内容——一个使用PHP编程语言开发的开源支付系统。"易支付"通常指的是一个简单易用的支付...同时,遵循开源许可协议,尊重作者的劳动成果,遵守社区规则也是参与开源项目的基本准则。

    基于PHP的网上商城系统分析与设计说明.doc

    接着,分析了系统开发的三个可行性方面:技术可行性、操作可行性及经济可行性。技术可行性主要依赖于PHP作为动态网页设计技术,以及MySQL作为数据库的支持;操作可行性考虑了用户友好性和易用性;经济可行性则着眼于...

    韩顺平php开发加mysql优化

    3NF(第三范式)是数据库设计的基本准则,它要求每个表中的数据都不应存在冗余,即任何非主键字段都不能完全依赖于其他非主键字段。在3NF的基础上,我们还需要确保表的列具有原子性,即不可再分解。例如,在MySQL中...

    wkv3.rar_Over

    合法的安全研究和渗透测试需要遵循严格的道德准则,并且通常是在所有者的明确许可下进行。 对于网络安全专业人员来说,了解这种攻击方法是至关重要的,这样他们就可以采取预防措施,加固他们的服务器,避免成为目标...

    软件工程学基础入门课程 软件工程基础-第07章 程序设计语言与编码 共59页.pptx

    《程序设计语言与编码》这一章节是软件工程课程的重要组成部分,它不仅介绍了不同类型的程序设计语言,还深入探讨了如何选择合适的编程语言以及遵循良好的编码实践。通过本课程的学习,学生将能够更好地理解和应用...

    2021-2022计算机二级等级考试试题及答案No.13962.docx

    - **热启动**(正确):在工作状态下,可以同时按下Ctrl+Del+Alt三个键来重启计算机。 ### 23. 文档编辑撤销 - **撤销操作**(正确):在大多数文档编辑软件中,可以使用“编辑”菜单中的“撤销”命令来撤销最近的...

    Joolma环境

    同时,理解日志分析、代码审查以及如何遵循渗透测试的道德准则也是至关重要的。 为了有效地利用Joolma环境,你需要掌握以下技能: 1. Web应用安全基础:了解OWASP Top 10等常见Web应用安全威胁。 2. 编程和Web开发...

    2021-2022计算机二级等级考试试题及答案No.274.docx

    给定字符串 "abccdefcdh",使用 "c" 进行分割会得到 "abc", "def", "dh" 三个子串,因此 arr.length 为 3,C 选项正确。 8. **栈和队列的共同点**: 栈和队列都是线性数据结构,它们都仅允许在端点处进行插入和...

    2021-2022计算机二级等级考试试题及答案No.11563.docx

    符合此掩码的正确输入是包含两个字母后接三个数字的形式。 - **重要程度**: 低 - **应用**: 数据输入验证。 #### 10. 计算机系统硬件组成 - **知识点**: 计算机系统的硬件主要由运算器、控制器、存储器、输入设备和...

    2021-2022计算机二级等级考试试题及答案No.13276.docx

    在编程中,变量名的命名需要遵循一定的规则。 **知识点详解:** - **选项A**:“X_yz”是合法的变量名。变量名可以由字母、数字和下划线组成,但不能以数字开头。 - **选项B**:“X-Y”不是合法的变量名。变量名中...

Global site tag (gtag.js) - Google Analytics