1、在linux下使用php的方式:
   vi test
   編輯test的內(nèi)容
   <?php
       echo "hello world";
   ?>
   保存后運(yùn)行 php test
   即得到hello world字符串。這種形式使用只合適學(xué)習(xí)php的語法,php在網(wǎng)絡(luò)方面的功能就發(fā)揮不出來了。

2、php和javascript一樣是弱類型語言。其賦值形式為
   $money = 1000.89;
   php支持Integer,String,Float,Boolean,Array和Object.
3、php獲取表單數(shù)據(jù)的方式:
   $tireqty
   $_POST['tireqty']
   $HTTP_POST_VARS['tireqty']
4、可變變量。工作原理就是用一個(gè)變量的值作為另一個(gè)變量的名稱,如:
   $varname = 'tireqty';
   $$varname = 5; (此時(shí)相當(dāng)于給tireqty變量賦值5)
5、聲明常量:
   define('TIREQTY', 10);建議使用大寫字母
6、變量的作用域:
  
7、引用
   賦值操作時(shí),先產(chǎn)生一個(gè)原變量的一個(gè)副本,然后再將它保存在內(nèi)存的其他地方
   $a = 5;$b = $a;$a = 7;
   經(jīng)過這樣操作后,$b的值依然為7不會(huì)發(fā)生改變。
   如果使用引用操作符&
   $b = &$a; $a = 7;
   那么$b也就同時(shí)等于7。因?yàn)?a和$b都指向了相同的內(nèi)存地址。
8、錯(cuò)誤抑制操作符
   錯(cuò)誤抑制操作符@可以在任何表達(dá)式前面使用,即任何有值的或者可以計(jì)算出值的表達(dá)式之前
   如:$a = @(57/0);
   如果沒有@操作符,這一行代碼將產(chǎn)生一個(gè)除0警告,使用這個(gè)操作符,這個(gè)警告就會(huì)被抑制住。

9、執(zhí)行操作符
   執(zhí)行操作符是一對操作符,它是一對反向單引號(hào)(``)。php將試著將反向單引號(hào)之間的命令當(dāng)做
   服務(wù)器端的命令來執(zhí)行。表達(dá)式的值就是命令的執(zhí)行結(jié)果。如:
   $out = `ls -al`;
   echo $out;

10、結(jié)束一個(gè)循環(huán)或者程序
    支持break、continue和exit,exit會(huì)跳出整個(gè)腳本程序。
11、php對文件的操作和c語言中的文件操作是一樣的。
12、php中對數(shù)組是可以隨意增長的,這點(diǎn)和javascript一樣。
    arry[i] = value的方式就可以將數(shù)組的size加1
   初始化方式1: $products = array("Tires","Oil","Spark");
             2:products[0]="Tires",products[1]="Oil",products[2]="Spark";
13、數(shù)組的循環(huán)
   可以使用for循環(huán),也可以使用foreach
   foreach($products as $current)
     echo $current.' ';
   foreach是專門為數(shù)組而設(shè)計(jì)的。
14、相關(guān)數(shù)組(相當(dāng)于hashmap)
   $prices = array('Tiers'=>100, 'Oil'=>10, 'Spark'=>4);以產(chǎn)品作為關(guān)鍵字,以價(jià)格作為
   值的相關(guān)數(shù)組。
   讀取方法:
   foreach($prices as $key=>$value)
     echo $key.'=>'.$value;
  
   while($element = each($prices))
   {
     echo $element['key'];
     echo '=>';
     echo $element['value'];
    }

   while(list($product,$price) = each($prices))
     echo "$product=>$price";
15、數(shù)組排序
   sort、asort和ksort。asort是按照相關(guān)數(shù)組的value進(jìn)行排序,而ksort是按照key進(jìn)行排序。
   以上是按照升序進(jìn)行排序的,如果需要按照降序進(jìn)行排序那么為rsort,arsort和krsort。也可以
   自定義排序,如多維數(shù)組,使用usort($products,compair),compair是一個(gè)函數(shù),需要用戶自定義。
  
16、file函數(shù)返回一個(gè)數(shù)組,文件中的每一行是數(shù)組的一個(gè)元素
    $orders = file("orders.txt");
17、explode函數(shù)用于處理字符串的分隔符
   $line = explode("\t", $orders[i]);返回的line就是一個(gè)數(shù)組,這個(gè)功能類似于Java的
   StringTokenizer類的功能
18、統(tǒng)計(jì)數(shù)組元素個(gè)數(shù):count、sizeof和array_count_values,其中最后一個(gè)是返回一個(gè)相關(guān)函數(shù)
   key為數(shù)組元素,value為這個(gè)數(shù)組元素出現(xiàn)的次數(shù)。
19、require和include函數(shù),用于加載文件,如果此文件是.php文件則執(zhí)行,如果不是則當(dāng)成
   普通文件加載進(jìn)來。如果里面包含<?php command ?>也會(huì)執(zhí)行。
   這兩個(gè)函數(shù)的區(qū)別只是如果加載失敗require會(huì)報(bào)錯(cuò),而include只是會(huì)警告
20、php的錯(cuò)誤提示:通常,php給出的錯(cuò)誤信息是非常有用的。它可以告訴你錯(cuò)誤出現(xiàn)在哪個(gè)文件
   中,錯(cuò)誤在文件的哪一行等。
21、如果希望值發(fā)生改變,就采用引用傳遞參數(shù)
   function increment(&$value, $amount =1)
   {
      $value = $value + $amount;
   }

   使用:
   $a = 10;
   echo $a.'<br />';
   increment($a);
   echo $a.'<br />';
   當(dāng)然如果不采用引用傳遞還希望$a發(fā)生改變可以將其變成全局變量。
22、php5引入了全新的、功能更為強(qiáng)大的面向?qū)ο髮?shí)現(xiàn),它使得類和對象更用用。
23、class的定義
    class classname
    {
         //方法和屬性的引用采用“->”方式
         $attribute;
         function _construct($param)
         {
            $this->attribute = $param; //注意和java不同,這里this前面是有一個(gè)$符的
            echo "Hello";
          }
          function _destruct()  //可選
          {
           }
      }

24、控制訪問符:public是默認(rèn)屬性,這里與Java不一樣。
25、parent關(guān)鍵字允許調(diào)用父類操作的方法,如要從類B中調(diào)用父類A的操作A::operation,可以
   使用parent::operation()。但是如果operation中的操作屬性被重載了,還是會(huì)使用B中的屬性值
26、final關(guān)鍵字用于類和函數(shù),同Java一樣,防止繼承和重載的。php同樣是只能繼承一個(gè)父類,但是
   可以實(shí)現(xiàn)多個(gè)接口。繼承的關(guān)鍵詞是extends,實(shí)現(xiàn)的關(guān)鍵字是implements.
27、php4之前的對象是按照值傳遞的,而php5是按照引用傳遞的,這點(diǎn)和Java一樣了。
28、使用Per-class常量
   class Math {
    const pi = 3.14159;
   }
   使用: echo Math::pi;
29、靜態(tài)方法:使用static關(guān)鍵字,同Java。調(diào)用時(shí)用Math::operation();
30、php5提供instanceof關(guān)鍵字
    ($b instanceof B) 返回true
    ($b instanceof A) 返回true
31、php5引入clone關(guān)鍵字,允許復(fù)制一個(gè)已有的對象
   $c = clone $b; 同Java的clone意義,但是用法不同。
   clone后c具有同b一樣的屬性,如果要改變默認(rèn)的clone方式,需要在類中寫一個(gè)_clone方法

32、php5提供abstract關(guān)鍵字,意義同java。
33、php5習(xí)慣利用_call實(shí)現(xiàn)方法的重載(注意重載是指方法名相同而參數(shù)不同,overload,而override
    是子類覆蓋父類的方法)。因?yàn)閜hp使用靈活的類型和(容易實(shí)現(xiàn)的)可選的函數(shù)參數(shù)
    如:
    public function _call($method,$p)
    {
       if($method == 'display')
         if(is_object($p[0]))
            $this->displayobject($p[0]);
         elseif(is_array($p[0]))
            $this->displayArray($p[0]);
         else
            $this->displayScalar($p[0]);
     }
     _call()方法必須帶有兩個(gè)參數(shù),一個(gè)包含被調(diào)用的方法名稱,第二個(gè)參數(shù)包含傳遞給
     該方法的參數(shù)數(shù)組。使用:
     $ov = new overload;
     $ov->display(array(1,2,3)); //調(diào)用displayArray函數(shù)
     $ov->display('cat');   //調(diào)用displayScalar函數(shù)
34、php5有_toString(),同Java,如果實(shí)現(xiàn)則可以自定義打印類實(shí)例對象。php5提供了Reflection
   API。異常處理是php5中的一個(gè)重要特性。