一家之言的經(jīng)驗(yàn)之談php+mysql扎實(shí)個(gè)人基本功
更新時(shí)間:2008年03月27日 23:14:03 作者:
在學(xué)習(xí)php的過(guò)程中,我們開(kāi)始就需要注意的問(wèn)題
一. 10句話(huà)
1.不要依賴(lài)register_global=ON的環(huán)境,從你剛懂得配置php運(yùn)行環(huán)境甚至尚不明白register_global的ON/OFF會(huì)對(duì)自己有什么影響的那天起,就應(yīng)該勇敢地把它設(shè)為OFF.
2.寫(xiě)程序前看看怎么用error_reporting.
3.不懂就問(wèn)本身沒(méi)錯(cuò),但你需要在那之前查查手冊(cè)。
4.當(dāng)然,你需要懂得使用手冊(cè)。手冊(cè)上找不到答案的時(shí)候,應(yīng)該考慮下網(wǎng)絡(luò)上的搜索引擎。
5.剛學(xué)會(huì)php+mysql之后,不要叫嚷著要寫(xiě)論壇,要寫(xiě)XXX。要明白,剛學(xué)會(huì)寫(xiě)漢字并不表示你有能力寫(xiě)詩(shī)。
6.在學(xué)web編程的時(shí)候,你應(yīng)該先去認(rèn)識(shí)html這個(gè)朋友。
7.有點(diǎn)能力后,試著回答新手的問(wèn)題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名“簡(jiǎn)單,那是基本的東西”就走更要不得。
8.思考是一個(gè)好習(xí)慣,不動(dòng)手去寫(xiě)就等于空想,什么也沒(méi)有。
9.寫(xiě)好一段程序,如果覺(jué)得很滿(mǎn)意,一周后再看一遍,也許你會(huì)認(rèn)為它應(yīng)該有所改變
10.有空多看看別人的程序,找出他人的不足或優(yōu)點(diǎn),自己掂量。
二. 各取所需
1.善于使用“引用”,它能直接影響到程序的效率。
2.善于用三元運(yùn)算子,可以讓程式較精簡(jiǎn)有效率。
比如:
PHP代碼:--------------------------------------------------------------------------------
if ($data[$i]['nickname'])
{
$nickname = $data[$i]['nickname'];
}
else
{
$nickname = $data[$i]['ip'];
}
--------------------------------------------------------------------------------
可以寫(xiě)成:
PHP代碼:--------------------------------------------------------------------------------
$nickname = $data[$i]['nickname'] ? $data[$i]['nickname'] : $data[$i]['ip'];
--------------------------------------------------------------------------------
3.善于組織if...else...回圈
比如:
PHP代碼:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!empty($type))
{
if (!strpos($type, $ext_name))
{
echo "Please upload the file of $type form.";
exit();
}
}
--------------------------------------------------------------------------------
上面的代碼你應(yīng)該寫(xiě)成這樣:
PHP代碼:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!($type==='') && strpos($type, $ext_name)===false)
{
echo "Please upload the file of $type form.";
exit();
}
--------------------------------------------------------------------------------
4.盡量讓你的代碼清淅些
如果寫(xiě)成這樣,是比較讓人頭痛的:
PHP代碼:--------------------------------------------------------------------------------
$foo=$_post["foo"];
$username=$_post["user"];
$group=$_POST["group"];
if ($group=="wheel"){
$username=$username."wheel";
}
--------------------------------------------------------------------------------
同樣的代碼,這樣就比較讓人看得舒服了:
PHP代碼:--------------------------------------------------------------------------------
$foo = $_post["foo"];
$username = $_post["username"];
$group = $_POST["group"];
if ($group=="wheel")
{
$username = $username."wheel";
}
--------------------------------------------------------------------------------
當(dāng)然,有一定基礎(chǔ)后,你應(yīng)該要寫(xiě)成這樣:
PHP代碼:--------------------------------------------------------------------------------
$foo = &$_POST['foo'];
$username = $_POST["group"]!='wheel' ? $_POST["username"] : $_POST["username"].'wheel';
--------------------------------------------------------------------------------
5.編寫(xiě)規(guī)范的mysql 語(yǔ)句。
字段和表名用"`"引起來(lái),避免保留字的影響。
如果看到下面這樣的一個(gè)sql query,會(huì)讓人比較頭痛:
PHP代碼:--------------------------------------------------------------------------------
$query="select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` from `flash_comment` left join `product` on ( `flash_comment`.`p_no` = `product`.`p_no` ) left join `sgflash` on ( `product`.`p_name` = `sgflash`.`f_name` ) where `flash_comment`.`p_no` != '' order by `flash_comment`.`date`";
--------------------------------------------------------------------------------
同樣的一個(gè)query,寫(xiě)成這樣就令人看得明白得多了:
PHP代碼:--------------------------------------------------------------------------------
$query = "Select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid`
FROM `flash_comment`
LEFT JOIN `product` ON ( `flash_comment`.`p_no` = `product`.`p_no` )
LEFT JOIN `sgflash` ON ( `product`.`p_name` = `sgflash`.`f_name` )
Where `flash_comment`.`p_no` != ''
orDER BY `flash_comment`.`date`";
--------------------------------------------------------------------------------
//
.....
1.不要依賴(lài)register_global=ON的環(huán)境,從你剛懂得配置php運(yùn)行環(huán)境甚至尚不明白register_global的ON/OFF會(huì)對(duì)自己有什么影響的那天起,就應(yīng)該勇敢地把它設(shè)為OFF.
2.寫(xiě)程序前看看怎么用error_reporting.
3.不懂就問(wèn)本身沒(méi)錯(cuò),但你需要在那之前查查手冊(cè)。
4.當(dāng)然,你需要懂得使用手冊(cè)。手冊(cè)上找不到答案的時(shí)候,應(yīng)該考慮下網(wǎng)絡(luò)上的搜索引擎。
5.剛學(xué)會(huì)php+mysql之后,不要叫嚷著要寫(xiě)論壇,要寫(xiě)XXX。要明白,剛學(xué)會(huì)寫(xiě)漢字并不表示你有能力寫(xiě)詩(shī)。
6.在學(xué)web編程的時(shí)候,你應(yīng)該先去認(rèn)識(shí)html這個(gè)朋友。
7.有點(diǎn)能力后,試著回答新手的問(wèn)題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名“簡(jiǎn)單,那是基本的東西”就走更要不得。
8.思考是一個(gè)好習(xí)慣,不動(dòng)手去寫(xiě)就等于空想,什么也沒(méi)有。
9.寫(xiě)好一段程序,如果覺(jué)得很滿(mǎn)意,一周后再看一遍,也許你會(huì)認(rèn)為它應(yīng)該有所改變
10.有空多看看別人的程序,找出他人的不足或優(yōu)點(diǎn),自己掂量。
二. 各取所需
1.善于使用“引用”,它能直接影響到程序的效率。
2.善于用三元運(yùn)算子,可以讓程式較精簡(jiǎn)有效率。
比如:
PHP代碼:--------------------------------------------------------------------------------
if ($data[$i]['nickname'])
{
$nickname = $data[$i]['nickname'];
}
else
{
$nickname = $data[$i]['ip'];
}
--------------------------------------------------------------------------------
可以寫(xiě)成:
PHP代碼:--------------------------------------------------------------------------------
$nickname = $data[$i]['nickname'] ? $data[$i]['nickname'] : $data[$i]['ip'];
--------------------------------------------------------------------------------
3.善于組織if...else...回圈
比如:
PHP代碼:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!empty($type))
{
if (!strpos($type, $ext_name))
{
echo "Please upload the file of $type form.";
exit();
}
}
--------------------------------------------------------------------------------
上面的代碼你應(yīng)該寫(xiě)成這樣:
PHP代碼:--------------------------------------------------------------------------------
$ext_name = strtolower(str_replace(".", "", strrchr($upfilename, ".")));
if (!($type==='') && strpos($type, $ext_name)===false)
{
echo "Please upload the file of $type form.";
exit();
}
--------------------------------------------------------------------------------
4.盡量讓你的代碼清淅些
如果寫(xiě)成這樣,是比較讓人頭痛的:
PHP代碼:--------------------------------------------------------------------------------
$foo=$_post["foo"];
$username=$_post["user"];
$group=$_POST["group"];
if ($group=="wheel"){
$username=$username."wheel";
}
--------------------------------------------------------------------------------
同樣的代碼,這樣就比較讓人看得舒服了:
PHP代碼:--------------------------------------------------------------------------------
$foo = $_post["foo"];
$username = $_post["username"];
$group = $_POST["group"];
if ($group=="wheel")
{
$username = $username."wheel";
}
--------------------------------------------------------------------------------
當(dāng)然,有一定基礎(chǔ)后,你應(yīng)該要寫(xiě)成這樣:
PHP代碼:--------------------------------------------------------------------------------
$foo = &$_POST['foo'];
$username = $_POST["group"]!='wheel' ? $_POST["username"] : $_POST["username"].'wheel';
--------------------------------------------------------------------------------
5.編寫(xiě)規(guī)范的mysql 語(yǔ)句。
字段和表名用"`"引起來(lái),避免保留字的影響。
如果看到下面這樣的一個(gè)sql query,會(huì)讓人比較頭痛:
PHP代碼:--------------------------------------------------------------------------------
$query="select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid` from `flash_comment` left join `product` on ( `flash_comment`.`p_no` = `product`.`p_no` ) left join `sgflash` on ( `product`.`p_name` = `sgflash`.`f_name` ) where `flash_comment`.`p_no` != '' order by `flash_comment`.`date`";
--------------------------------------------------------------------------------
同樣的一個(gè)query,寫(xiě)成這樣就令人看得明白得多了:
PHP代碼:--------------------------------------------------------------------------------
$query = "Select `flash_comment`.`content` , `flash_comment`.`nickname` , `flash_comment`.`date` , `flash_comment`.`ip` , `product`.`p_name` , `sgflash`.`fid`
FROM `flash_comment`
LEFT JOIN `product` ON ( `flash_comment`.`p_no` = `product`.`p_no` )
LEFT JOIN `sgflash` ON ( `product`.`p_name` = `sgflash`.`f_name` )
Where `flash_comment`.`p_no` != ''
orDER BY `flash_comment`.`date`";
--------------------------------------------------------------------------------
//
.....
相關(guān)文章
php實(shí)現(xiàn)Linux服務(wù)器木馬排查及加固功能
這篇文章主要介紹了php實(shí)現(xiàn)Linux服務(wù)器木馬排查及加固功能,本文給出了根據(jù)特征碼查找、搜索最近被修改的文件、修改php.ini、修改nginx.conf等方法,需要的朋友可以參考下2014-12-12
對(duì)比PHP對(duì)MySQL的緩沖查詢(xún)和無(wú)緩沖查詢(xún)
PHP中使用函數(shù)查詢(xún)MySQL中的數(shù)據(jù)默認(rèn)是以緩沖模式,除此之外MySQL程序還支持一種無(wú)緩沖模式,本文我們將來(lái)對(duì)比PHP對(duì)MySQL的緩沖查詢(xún)和無(wú)緩沖查詢(xún):2016-07-07
PHP常用函數(shù)總結(jié)(180多個(gè))
這篇文章主要介紹了PHP常用函數(shù)總結(jié)(160多個(gè)),需要的朋友可以參考下2016-12-12
再Docker中架設(shè)完整的WordPress站點(diǎn)全攻略
這篇文章主要介紹了再Docker中架設(shè)完整的WordPress站點(diǎn)全攻略,Docker是當(dāng)下最火爆的虛擬機(jī)類(lèi)技術(shù),需要的朋友可以參考下2015-07-07
PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別
這篇文章主要介紹了PHP中魔術(shù)變量__METHOD__與__FUNCTION__的區(qū)別,是深入學(xué)習(xí)PHP程序設(shè)計(jì)所必須掌握的概念,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09
php set_time_limit()函數(shù)的使用詳解
本篇文章是對(duì)php中的set_time_limit()函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP在終端中實(shí)現(xiàn)進(jìn)度條來(lái)處理數(shù)據(jù)的示例詳解
在PHP中,有時(shí)候你需要在終端中處理大量數(shù)據(jù)或執(zhí)行長(zhǎng)時(shí)間運(yùn)行的任務(wù),同時(shí)希望能夠?qū)崟r(shí)跟蹤任務(wù)的進(jìn)度,在 PHP 中,有時(shí)候你需要在終端中處理大量數(shù)據(jù)或執(zhí)行長(zhǎng)時(shí)間運(yùn)行的任務(wù),同時(shí)希望能夠?qū)崟r(shí)跟蹤任務(wù)的進(jìn)度,需要的朋友可以參考下2023-10-10
深入apache配置文件httpd.conf的部分參數(shù)說(shuō)明
本篇文章是對(duì)apache配置文件httpd.conf的部分參數(shù)說(shuō)明進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

