PHP+MySQL基礎知識惡補

一. 10句話

1.不要依賴register_global=ON的環境,從你剛懂得配置php運行環境甚至尚不明白register_global的ON/OFF會對自己有什麼影響的那天起,就應該勇敢地把它設為OFF.

2.寫程序前看看怎麼用error_reporting.

3.不懂就問本身沒錯,但你需要在那之前查查手冊。

4.當然,你需要懂得使用手冊。手冊上找不到答案的時候,應該考慮下網絡上的搜索引擎。

5.剛學會php+mysql之後,不要叫嚷著要寫論壇,要寫XXX。要明白,剛學會寫漢字並不表示你有能力寫詩。

6.在學web編程的時候,你應該先去認識html這個朋友。

7.有點能力後,試著回答新手的問題,不要看到自己懂的而別人不懂就沾沾自喜,扔下一名“簡單,那是基本的東西”就走更要不得。

8.思考是一個好習慣,不動手去寫就等於空想,什麼也沒有。

9.寫好一段程序,如果覺得很滿意,一周後再看一遍,也許你會認為它應該有所改變

10.有空多看看別人的程序,找出他人的不足或優點,自己掂量。

  二. 各取所需

  1.善於使用“引用”,它能直接影響到程序的效率。

  2.善於用三元運算子,可以讓程式較精簡有效率。

比如:

  PHP代碼:

if ($data[$i][nickname]){
  $nickname = $data[$i][nickname];
}
else{
  $nickname = $data[$i][ip];
}
  可以寫成:

  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();
  }
}
  上面的代碼你應該寫成這樣:

  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.盡量讓你的代碼清淅些,如果寫成這樣,是比較讓人頭痛的:

  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";
}
  當然,有一定基礎後,你應該要寫成這樣:

  PHP代碼:

$foo   = &$_POST[foo];
$username = $_POST["group"]!=wheel ? $_POST["username"] : $_POST["username"].wheel;
  5.編寫規范的mysql 語句。

  字段和表名用"`"引起來,避免保留字的影響。

如果看到下面這樣的一個sql query,會讓人比較頭痛:

  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`";
  同樣的一個query,寫成這樣就令人看得明白得多瞭:

  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`";

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *