How To : Improve Your PHP Programming 如何提高你的PHP编写水平

中文版 转自 落伍

Hello everyone,

I’ve decided that I would make a thread here describing the different things that I do to improve other people’s PHP scripts.

Hope you enjoy it and learn a thing or two.

1 – Your PHP Tags
I know some of you prefer to use the short tags when writing PHP scripts but this is not always the best way of doing it.
The standard tags are much better as they will work on every server that you write your PHP code on. You may move to a server some day that doesn’t allow the short tags or the ASP-style tags and you will have to sit for an hour and update your PHP scripts.

2 – Debugging Your PHP Code
Some of us may run into a problem when programming a PHP script and don’t know what’s wrong with it. The error_reporting() function in PHP helps you out by telling every error you have on your page. To show all of the errors on the page that you’re editing, put this on the second line :

CODE: [Copy to clipboard]
PHP:

error_reporting(E_ALL);

——————————————————————————–

3 – Debugging Your PHP Code (again)
When you finish editing your 1200-line PHP script, click onto it in your Internet browser, you see an error that says that is on line 561. Don’t hit the panic-attack button quite yet, because there is an easy way to find out what line 561 is. Follow these easy steps :
– Open up Microsoft Notepad
– Paste your PHP script into it
– Go to ‘Edit’ >> ‘Go To…’ (or Control+G)
– Type in line #561 and hit the enter key
– Your cursor is taken to line #561.
– Look above and below line #561 to see if there is any kind of trouble.
– Fix the error, re-upload the script to your website, and most likely it will work. If there is another error, repeat the above steps.

4 – Using Comments
If you have a 1200-line PHP script, it may be quite hard to figure out what’s going on all through-out it. The solution to figure out what you’re doing is to add PHP-comments.
PHP-comments are different than the as they are not outputted to the user’s page (meaning that they are not even going to see it in the source code).
There are three ways to make comments in PHP :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// The double-backslash is my personal favorite. I add another set after my code so that it looks even, though it is not necessary. //
# The hash-style comment is another way of making a comment.
/* And, this is the final way of making PHP-comments. You can use multiple
lines at a time by using this style. */
?>

——————————————————————————–

You can decorate it however you like, you are the only one who may use them.

5 – Indenting Your PHP Codes
I don’t personally like to indent my PHP codes, but it helps when reading it. When I do have to, I use the tab key to accomplish this. Example :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// Settings //
$var1 = “This”;

// Showing Variables //
if($var1 == “This”){
echo”You said This”;
}else{
echo”You said That”;
}
?>

——————————————————————————–

6 – Improving your PHP-File Includes
I’m sure that most of us on here include a PHP file or two for our layouts. Well, what if your layout file was missing ? Wouldn’t that look pretty unprofessional to the people on your website ?
In every PHP-script that I write, I make sure that the file exists before it is even included. Here’s an example :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if(!file_exists(“layout.inc.php”)){exit(“Error : LayOut File Missing”);}else{include_once(“layout.inc.php”);}
?>

——————————————————————————–

I’m sure that a small error message will seem better than half a page that is all messed-up looking.

7 – Your MySQL Queries
Sometimes when you’re writing a PHP script that includes connections to your MySQL database, you may run into a few problems. Most everyone that had MySQL problems ran a command like this one :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

mysql_query(“INSERT INTO tableName (‘id’,’name’) VALUES(‘1′,’Mike’)”);
?>

——————————————————————————–

..and they figure out that it’s not inserting into their database. Here’s the solution to this :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

mysql_query(“INSERT INTO tableName (‘id’,’name’) VALUES(‘1′,’Mike’)”) or exit(“MySQL Error : ” . mysql_error());
?>

——————————————————————————–

8 – Combining Alike If-Then Statements
You may have a register page, and want to make sure that everything has been filled-in. You may use many if-then statements like so :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if(!$_POST[name]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
if(!$_POST[email]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
?>

——————————————————————————–

You can combine these two lines into one by joining their if-then statements together :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if((!$_POST[name]) || (!$_POST[email])){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
?>

——————————————————————————–

Simply, || is the same thing as OR and && is the same as AND.

9 – Using echo or print ?
Most of you may say ‘echo is the same thing as print’, in which I agree with you all. The echo command is much faster than the print command, and is one less character to type. The echo command came later than the print command (I believe), so you make the judement on which to use.

10 – Printing out a Huge Chunk of HTML at a Time
Well, I’m sure that many of us found a way to get around this, but I’d like to share with you a few of the ways you can do it.

1 – Break off your PHP-code, print the HTML, and start your PHP-code up again. (I don’t prefer doing this as it looks pretty unprofessional to me).
2 – Adding backslashes to each HTML tag. (It works, but takes forever to do).
3 – Using the echo/print command, but without having to do much work. (I recommend) :

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// Showing a huge chunk of HTML at a time //
echoLarge, Orange Text in Font Size 3

More HTML down here..

Centered text

END;
?>

——————————————————————————–

Well, I have many other things to tell about sprucing up your PHP-code, but I don’t want to bore you.

I hope I’ve helped.

Best Regards,
– Mike.

?

中文版

大家好

我决定在这里给大家讲述一些能够提高大家PHP代码效果的注意事项:

1、PHP标签

我知道有些人写PHP代码的时候喜欢用缩略标签,但是这可不是个好习惯,因为缩略标签在有些服务器上不能被正确识别,而标准的PHP标签的使用使你可以在任何一台服务器上准确编译你的PHP代码。可能有一天你需要把你的代码安装在那些不支持缩略标签的服务器上,于是你将不得不花费一个小时或者更多的时间老实的坐下来升级你的PHP代码

2、PHP代码的调试

有时我们运行PHP代码的时候会碰到问题并且我们不知道这问题究竟出在哪儿。而PHP中专门有个error_reporting() 函数,它可以告诉你你的代码中的每一处错误。如果你希望它显示页面的所有可能出现的错误信息,可以将下面这句代码放在文件的第二行:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

error_reporting(E_ALL);

——————————————————————————–

3、PHP代码的调试(补充)

如果你完成一个有1200行PHP代码的文件,并在浏览器中浏览它时,显示你的代码的错误出现在文件的第561行。此时你有个简单的方法来找到该行,按照以下步骤:
新建一记事本
把你的PHP代码复制进去
“编辑”->“转到”
输入“561”,回车
你的鼠标就停留在561行了
在该行附近看看是否存在错误
修正错误,重新上传代码到你的空间,很可能将正常运行。如果还有什么错误,则重复以上步骤。

彷徨一小生 补充:现在大都用editplus之类的软件,这个方法过时了哦

4、使用注释

如果你的PHP代码有1200行,那么要搞明白它要做什么是一件很困难的事,解决这个问题的办法就是为你的代码加上注释。
PHP的注释不同于HTML中的 ,因为它将不被输出(以为着它们甚至不会被在“查看源文件”时看到)
有三中方法在PHP中添加注释:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// 你的注释//
# 你的注释
/*你的注释 */
?>

——————————————————————————–

你可以按照你所希望的来装饰它们,你是唯一使用它们的人。

5、PHP代码的缩进

我个人其实不喜欢缩进PHP代码,但是它确实使代码易于阅读。当我不得不进行缩进时,我是用tab笺来进行的,如下:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// Settings //
$var1 = “This”;

// Showing Variables //
if($var1 == “This”){
echo”You said This”;
}else{
echo”You said That”;
}
?>

——————————————————————————–

6、修正你的PHP文件包含方式

我确信这里的大部分人在一个文件中都会需要包含一个或两个其它的文件。有没有想过如果并不存在你所需要的那个文件怎么办?浏览你网页的人会否因此觉得你不够专业?
在我所写的PHP代码中,我在包含另外一个文件之前都会先确定它存在,如下例:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if(!file_exists(“layout.inc.php”)){exit(“Error : LayOut File Missing”);}else{include_once(“layout.inc.php”);}
?>

——————————————————————————–

7、数据库查询

有时你的PHP代码中包含着于数据库的连接,你可能会遇到一些小麻烦,大部分容易出现数据库问题的人都是以这样的形式来写代码的:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

mysql_query(“INSERT INTO tableName (‘id’,’name’) VALUES(‘1′,’Mike’)”);
?>

——————————————————————————–

。。运行之后他发现数据并没有插入到数据库中,我们可以这样来解决这个问题:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

mysql_query(“INSERT INTO tableName (‘id’,’name’) VALUES(‘1′,’Mike’)”) or exit(“MySQL Error : ” . mysql_error());
?>

——————————————————————————–

8、缩略类似IF-THEN的语句

假如你接收一个注册页面传递的数据,而你想保证所有信息都已填写,你可能会用包含很多IF-THEN格式的语句,象下面这个:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if(!$_POST[name]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
if(!$_POST[email]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
?>

——————————————————————————–

而实际上你可以通过合并这两行的IF-THEN语句使它只有一行:

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

if((!$_POST[name]) || (!$_POST[email])){exit(“Sorry, but you did not fill-in all of the requested fields.”);}
?>

——————————————————————————–

||和OR,&&和AND分别具有相同的意义。

9、使用echo还是print?

大部分人会说“echo和print是相同的”,我同意这个观点。不过echo的运行速度要比print快很多,并且比print少一个字母。echo命令比print出现得晚一些(我这样认为),显然你知道该如何选择了。

10、不时输入一大段HTML语言

我相信很多人都有解决这个的办法,但是我还是想和你说说解决这个的一些办法。
⑴、输入PHP的结束标签,然后就可以随意的输入HTML代码,然后再PHP的开始标签(我不喜欢这样做,因为它看起来很不专业)。
⑵、在每句HTML代码中都加入反斜线(这样是可行的,但是你一直要这样每一句都要)。
⑶、使用echo或者print命令,仅此而已(推荐):

CODE: [Copy to clipboard]
PHP:
——————————————————————————–

// Showing a huge chunk of HTML at a time //
echoLarge, Orange Text in Font Size 3

More HTML down here..

Centered text

END;

——————————————————————————–

实际上我还有很多其它的关于修饰PHP代码的东西想说,但是就这样吧,我不想继续烦大家了。
希望对大家有所帮助。

Best Regards,
– Mike.

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据