監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
南昌網(wǎng)站建設(shè)公司

當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 南昌OA系統(tǒng) > 南昌網(wǎng)站建設(shè)公司

基礎(chǔ)PHP小知識分享

申請免費試用、咨詢電話:400-8352-114

在網(wǎng)站建設(shè)過程中通常會遇到一些小問題,下面泛普軟件跟大家分享建站基礎(chǔ)知識

一、require 和 require_once的區(qū)別

require 和 require_once兩個的引用方法沒有什么區(qū)別;他們的區(qū)別在于使用require每引用一次文件中的代碼就會被執(zhí)行一次,而使用require_once函數(shù)則不然,如果目標(biāo)文件中的代碼已經(jīng)被包含了,則不會再次被包含。


二、require 和 include 的區(qū)別

在使用上兩者沒有本質(zhì)的區(qū)別。兩者的區(qū)別體現(xiàn)在當(dāng)目標(biāo)文件不存在時的處理方法上。
如果引用的文件不存在,include將會產(chǎn)生一個警告;require則會導(dǎo)致一個致命的錯誤。換句話說,如果想在丟失文件時停止處理頁面,可以使用require方法。而include則不會這樣,即便出錯,腳本也會繼續(xù)運行。

如:當(dāng)使用require時

<?php
 require "hello1.php";
 echo '<br>';
 require_once ("hello.php");
?>
顯示的結(jié)果:

Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2

Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2

腳本出現(xiàn)錯誤,require_once 調(diào)用的函數(shù)不會被執(zhí)行。

當(dāng)使用include時:

<?php
 include "hello1.php";
 echo '<br>';
 require_once ("hello.php");
?>
顯示的結(jié)果:
Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2

Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2

hello world
即使腳本出現(xiàn)錯誤,require_once調(diào)用的函數(shù)也會被執(zhí)行。

三、PHP中的常量的值只包括4種類型:

    整型(整數(shù))integer
    浮點型 float(含小數(shù)點得數(shù))
    字符型 string(字符與字符串)
    布爾型 boolean (布爾值)
   
四、數(shù)據(jù)類型分類

數(shù)據(jù)類型分為3大類共8種類型:

1、最基本的4種類型:
   boolean  (布爾型)
   integer  (整型)
   float  (浮點型)
   string (字符串型)

2、符合型數(shù)據(jù)
   array  (數(shù)組)
   object  (對象)

3、最特殊的數(shù)據(jù)類型
   resource (資源)
   NULL (無值) 注:使用unset()函數(shù)可以注銷一個變量

五、查看一個函數(shù)的類型我們可以使用
    gettype() 函數(shù)
    該函數(shù)的語法格式代碼如下
    string gettype (mixed var)

六、自定義常量的函數(shù)
    define()
    該函數(shù)的語法格式代碼如下
    bool define(string name, mixed value[,bool case_insensitive])
    如,定義一個HOSTNAME的常量
    define ("HOSTNAME","localhost");

七、當(dāng)將自定義函數(shù)的的可選項case_insensitive設(shè)置為true時定義的常量將會      忽略大小寫。

八、獲取所有預(yù)定義的PHP常量
    get_defined_constants()
    該函數(shù)的語法格式代碼如下:
    array get_defined_constants([mixed categorize])
    可選參數(shù)categorize,該參數(shù)用于指定是否把系統(tǒng)中的常量按照其各自所屬的    分類輸出。

九、魔術(shù)常量
    魔術(shù)常量屬于系統(tǒng)常量的一種,與普通的系統(tǒng)常量不同,該類常量在不同的    PHP文件中將會有不同的值。
   
    1、__LINE__, 指代當(dāng)前代碼所在行數(shù)。
    2、__FILE__, 指代當(dāng)前文件的路徑名。
    3、__FUNCTION__, 指代當(dāng)前被調(diào)用的函數(shù)名。
    4、__CLASS__ , 指代類的名稱名。
    5、__METHOD__, 指代類的方法名。

十、比較運算符

    比較運算符用于對不同的內(nèi)容進(jìn)行大于、小于、等于及不等于類似的比較操    作。
   
    ==  (等于),該運算符如果前后內(nèi)容相等則返回TRUE,反之則返回FALSE
    === (全等于),該運算符如果前后內(nèi)容相等并且類型一致則返回TRUE,反之則        返回FALSE。
    !=  (不等), 該運算符如果前后內(nèi)容不相等則返回TRUE,反之則返回FALSE
    <>  (不等), 該運算符如果前后內(nèi)容不相等則返回TRUE,反之則返回FALSE
    !== (非全等),該運算符如果前后內(nèi)容不全等則返回TRUE,反之則返回FALSE
    <   (小于), 該運算符如果前面的值小于后面的值則返回TRUE,反之則返回        FALSE。
    >   (大于), 該運算符如果前面的值大于后面的值則返回TRUE,反之則返回        FALSE。
    <=  (小于等于),該運算符如果前面的值小于等于后面的值則返回TRUE,反        之則返回FALSE。
    >=  (大于等于),該運算符如果前面的值大于等于后面的值則返回TRUE,反之        則返回FALSE。

十一、邏輯運算符
   
      PHP中得邏輯運算符用于處理邏輯與、邏輯或、邏輯異或及邏輯非等邏輯關(guān)      系并返回相應(yīng)的布爾值。
    
     and (邏輯與),該運算符如果前后的兩個值均為TRUE則返回TRUE,反之返回           FALSE。
     or  (邏輯或),該運算符如果前后的兩個值中至少有一個為TRUE返回TURE,          反之(如果沒有一個TRUE)FALSE。
     xor (邏輯異或),該運算符如果前后兩個值不同(一個為TRUE,另一個為         FALSE)則返回TRUE,反之(兩者相同)則返回FALSE。
     !   (邏輯非),該運算符號如果其后面的值為FALSE則返回TRUE,反之則返回         FALSE。
     &&  (邏輯與),同and(優(yōu)先等級不同)。
     ||  (邏輯或),同or (優(yōu)先等級不同)。

十二、遞增/遞減運算符

     PHP中也支持C語言風(fēng)格的前/后遞增與遞減運算符。PHP中得遞增/遞減運算     符包括一下幾種:

     ++$a (前加),$a的值加1,然后返回$a;   ($a的值先加一,在返回$a)
     $a++ (后加),返回$a,然后將$a的值加1;
     --$a (前減),$a的值減1,然后返回$a;
     $a-- (后減),返回$a,然后將$a的值減1; ($a的值先返回$a,在減一)
    
     注:從上面可以看出:前加(減)是先加(減)再返回值,而后加(減)則是先返     回值再加(減)。

十三、三目運算符
     
      三目運算符由兩個表示符號即問號、冒號等組成。其語法格式如下:
     
      (expr1)?(expr2):(expr3);
     
      語句的意思是:當(dāng)expr1為TRUE時返回expr2當(dāng)expr1為FALSE時返回expr3。

十四、流程控制語句

      1、if      判斷;
            語法:if(expr)
                  {
                   statement
                   .........
                   }
      2、if....else 判斷;
            語法:if(expr)
                   {
                   statement1;
                   }
                   else
                   {
                   statement2;
                   }
      3、if....elseif....else   多重判斷;
     語法:if(expr)
                   {
                   statement1;
                   }
                   elseif(expr2)
                   {
                   statement2;
                   }
                   elseif(expr3)
                   {
                   statement3;
                   }
                   ........
                   else
                   {
                   statementN;
                   }
      4、switch    判斷;
           語法: switch($var)
                  {
                  case value1;
                  statment1;
                  break;
                  case value2;
                  statment2;
                  break;
                  .......
                  default:
                  statmentN;
                  }
            也可以使用以下的語法替代格式:
               switch($var):
                  case value1:
                  statment1;
                  break;
                  case value2:
                  statment2;
                  break;
                  .......
                  default:
                  statmentN;
                endswitch;
        
      5、while     循環(huán);
         語法格式: while(expr)
                    {
                    ........
                    statment;
                    }
      6、do        循環(huán);
         語法格式:do
                   {
                   ........
                   statement;
                   }
                   while(expr);
      7、for       循環(huán);
         語法格式:for (expr1; expr2; expr3)
                    {
                     ......
                        statement;
                    }
         常見的格式:for ($i=1; $i<6; $i++)
                     {
                     ...........
                     statement;
                     }
      8、foreach   循環(huán);
         語法格式: foreach (array_expression as $value)
                    {
                     statement;
                    }
                   
                    foreach (array_expression as $key => $value)
                    {
                     statement;
                    }
     
      解釋:
      (一)、if 判斷是所有的判斷中最簡單的一種。因為其只判斷條件為真的一       種情況,所以也被稱為單重判斷。

      (二)、if....else.... 判斷語句在判斷條件為假時不會執(zhí)行指定語句,卻       會執(zhí)行程序所設(shè)定的另外的語句。

      (三)、if....elseif...else... 判斷語句時,為了提高效率,一定要把最       有可能為真的語句放到最前面,而把最不可能出現(xiàn)的情況放在最后面。這        樣當(dāng)遇到判斷條件問真時,就不用在執(zhí)行后面的內(nèi)容。

      (四)、switch 判斷語句的使用限制。與if elseif else判斷不同,switch       僅能用于判斷的內(nèi)容是一個變量的情況,而其中case后面跟的判斷結(jié)果都        應(yīng)該是一個值而不能是一個表達(dá)式。而if elseif else在這方面則更加自        由,其中的判斷內(nèi)容可以是任意的表達(dá)式。
          注意:switch 判斷語句,如果在case后面不加break語句,則switch        會一直執(zhí)行到最后一句case后面的內(nèi)容。所以,通常情況下都需要在每個        case后面加上break語句,以使case執(zhí)行之后跳出整個判斷過程。

      (五)、do循環(huán)和while循環(huán)的區(qū)別:
      他們的區(qū)別在于:while循環(huán)當(dāng)條件不滿足時,跳出循環(huán),do循環(huán)無論條件       滿足還是不滿足,首先執(zhí)行一次。
     
      (六)、for 循環(huán)中需要三項內(nèi)容,expr1,expr2,expr3分別為三個表達(dá)式,
      第一個表達(dá)式(expr1)在循環(huán)開始前無條件求值一次;expr2在每次循環(huán)開
      始前求值,如果值為TRUE,則繼續(xù)執(zhí)行循環(huán)體的語句statement。如果值為
      FALSE則終止循環(huán),expr3在每次循環(huán)之后被求值(執(zhí)行)。
     
      for循環(huán)與while循環(huán)的比較:
      while循環(huán)在知道什么情況下執(zhí)行循環(huán)時相對方便;而for循環(huán)更適合于事        先知道循環(huán)次數(shù)的場合。

      (七)、foreach 開始執(zhí)行時,數(shù)組內(nèi)部的指針會自動指向第一個單元,這        意味著不需要在foreach循環(huán)之前調(diào)用reset()(重置數(shù)組)。并在每次循環(huán)        時自動向前移一步。

      (八)、break 和 continue 的區(qū)別
      break 和 continue 都有跳出循環(huán)的作用,
      break主要是無條件的跳出整個循環(huán),continue則是無條件的跳出本             次循環(huán),繼續(xù)執(zhí)行后面的循環(huán)。 
      使用if判斷語句和continue語句時,如果將它們放到最前面將會造成死循        環(huán)。

十五、用編程的思想解決百錢百雞問題

      有100文錢,買100只雞,規(guī)定100只雞中公雞、母雞和小雞。買一只公雞需       要5文錢,買一只母雞需要3文錢,買三只小雞需要1文錢,問:怎樣才能湊       成百錢買百雞?
     
      代碼如下:
      <?php
       $i=0;
   for($x=0;$x<20;$x++)
    {
  for($y=0;$y<100-$x;$y++)
   {
   $z=100-$x-$y;
   if(5*$x+3*$y+$z/3==100)
   {
   $i++;
    echo "第".$i."種方案:";
    echo "公雞數(shù)位:";
    echo $x."&nbsp;";
    echo "母雞數(shù)位:";
    echo $y."&nbsp;";
    echo "小雞數(shù)位:";
    echo $z."&nbsp;";
    echo "<p>";
      }
    }
  }
      ?>

十六、PHP中的函數(shù)

      函數(shù)的定義:簡單的說,函數(shù)是為了完成特定的功能而整體存在的一個代      碼塊。所以從函數(shù)的定義來說,函數(shù)的實質(zhì)就是代碼的集合,也就是一段        能獨立完成某種操作的代碼。
     
十七、PHP中函數(shù)的定義樣式:

      function fun_name(var_name....)
       {
           /*
            這里是具體的代碼
          */
        }
      所以定義一個函數(shù),使用function關(guān)鍵字+函數(shù)名稱+加一對半角括號,并        在括號中加上所需要的參數(shù)表,然后用一對大括號來包括所有需要執(zhí)行的
      代碼即可。

十八、定義函數(shù)是需要遵循的原則

      1、函數(shù)名必須依字母開頭。
      2、函數(shù)名只能依字母、數(shù)字和下劃線組成,而不能包含空格、標(biāo)點符號及         運算符等其他特殊的符號。
      3、函數(shù)名不能與PHP中的關(guān)鍵字名稱相同,如if、else、for等
      4、變量名不能與PHP中系統(tǒng)內(nèi)部庫函數(shù)名稱相同。

十九、函數(shù)的返回值

      自定義函數(shù)中如果要設(shè)置一個返回值,可以使用如下代碼

      function functionname()
      {
           //函數(shù)體
           return result;
      }
      在函數(shù)體中使用return語句再加上欲返回的內(nèi)容即可。這樣指定的值            result就會作為函數(shù)值被返回。

二十、函數(shù)的參數(shù)

      在PHP中函數(shù)的參數(shù)就是寫在函數(shù)名稱后圓括號內(nèi)常量、變量、表達(dá)式,在       這幾種類型中以變量使用的最廣泛。
 
      函數(shù)的創(chuàng)建代碼
  
      function functionname(var_name...)
      {
       /*
         這里是具體的代碼     
        */
      }

二十一、面向?qū)ο?/p>

      面向?qū)ο蟮淖龇ㄍǔJ菫榱送瓿赡骋粋€功能,要先定義一個類,并給該          類添加相應(yīng)的方法。然后再為這個類初始化一個對象,讓對象去執(zhí)行相應(yīng)        的方法,從而完成所需要的功能。

二十二、面向?qū)ο笈c面向過程的特點

      1、代碼的封裝不同。

         “面向過程”程序設(shè)計的方法使用函數(shù)或者普通的代碼對數(shù)據(jù)進(jìn)行操作         ,在這種方式下使用函數(shù)來處理數(shù)據(jù),而函數(shù)又是與數(shù)據(jù)分離的,所以          面向過程僅封裝了對數(shù)據(jù)的操作方法而沒有封裝數(shù)據(jù)。
         “面向?qū)ο?rdquo;程序設(shè)計方法是以對象為中心,使用類將數(shù)據(jù)(屬性)和對         數(shù)據(jù)的操作(方法)封裝在一起,作為已給整體來處理,通過這樣的封裝          ,使得數(shù)據(jù)與操作方法的關(guān)系更加緊密。

      2、代碼可維護性不同。

        “面向過程”程序設(shè)計方法以代碼所要實現(xiàn)的功能來設(shè)計功能模塊(如           函數(shù)),該種方法難以維護
        “面向?qū)ο?rdquo;程序設(shè)計方法以數(shù)據(jù)位中心來描述系統(tǒng),功能實現(xiàn)千變?nèi)f          化,有時一點很小的功能改動可能會導(dǎo)致全盤重做,而數(shù)據(jù)則相對穩(wěn)定          ,即使發(fā)生變化,只需要改動相應(yīng)內(nèi)容即可。所以面向?qū)ο蟮拇a比面          向過程的代碼更加容易維護。

      3、流程控制不同。

         “面向過程”程序的控制流程由程序中預(yù)定順序來決定,所以說其流程          是死板的。
         “面向?qū)ο?rdquo;程序的控制流程由運行時各種事件的實際發(fā)生來觸發(fā),而          不在由預(yù)定順序來決定。這中流程的控制方式更加靈活,也更符合實際          需要。

      4、框架利用不同。

         如今網(wǎng)絡(luò)技術(shù)飛速發(fā)展,網(wǎng)上有非常多得開源框架資源,面向?qū)ο蟪绦?nbsp;         設(shè)計方法可以充分利用已有的框架產(chǎn)品進(jìn)行二次開發(fā);這種方面,使用          面向過程,雖然可以使用一些函數(shù)之類來完成相關(guān)功能模塊的構(gòu)建,但          遠(yuǎn)不如使用己有框架來的方便。

      通過以上的比較可以發(fā)現(xiàn),面向?qū)ο笈c面向過程二者各有有缺點。在實際        工作中,如果是開發(fā)團隊協(xié)同工作大型程序,最好采用面對對象編程的方        法。如果是個人開發(fā)的小型程序,而且工作量不大,可以根據(jù)實際情況采        用自己喜歡的方法。

二十三、PHP中定義一個類的語法格式:

       class classname
             {
                 var $var;
                 function functionname()
                  {
                       ....
                       statement;
                  }
             }

二十四、為類實例化對象

      $obj_name=new classname;

      以上代碼中,classname為指定已經(jīng)存在的類的名稱,而$obj_name則為          需要對類實例化的對象。在PHP中為類實例化一個獨享應(yīng)該在創(chuàng)建類之后         ,使用"new" 關(guān)鍵字在跟上類的名稱即可。

二十五、使用對象

      $obj_name=new classname;
      $obj_name->varname;
      $obj_name->functionname();

      以上代碼中我們可以看出,PHP中調(diào)用對象的屬性和方法使用"->"操作符號       加上屬性的名稱或方法的名稱。這里需要注意,調(diào)用對象屬性(變量)時不        需要再加"$"符號,而調(diào)用對象方法(函數(shù))時需要在函數(shù)名后在加上括號。       對象屬性就可以當(dāng)做普通變量使用,而其他方法也可以當(dāng)做普通函數(shù)使用        。

二十六、類的繼承

      繼承是一種由己有地類創(chuàng)建新類的機制,利用繼承,用戶可以先創(chuàng)建一個        共有屬性的一般類,根據(jù)該一般類再創(chuàng)建具有特殊屬性的新類。新類繼承        一般類的狀態(tài)和行為,并根據(jù)需要增加它自己的新的狀態(tài)和行為。由繼承        而得到的類稱為子類,被繼承的類稱為父類。在php中使用關(guān)鍵字extends        來創(chuàng)建繼承父類的子類。

      語法格式:

      class parent_class
 {
     var $varname
           function functionname()
              {
                .......
                statement;
              }
         }
       class child_class extends parent_class
         {
            var $var
            function function()
               {
                  .....
                  statement;
                }
         }

二十七、類的引用

 類的引用就是值在一個類中使用另一個類中定義的屬性和方法。要在一  個類中引用另一個類的內(nèi)容,
 可以使用如下代碼格式:

 class classname
   {
      var $varname;
      function functionname()
                {
                   ......
                   statement;
                }
   }
 class otherclass
          {
             classname::functionname();
             classname::$varname;
          }
 在一個類中引用另一個類的屬性和方法,需要使用類的名稱加上"::"再  加上方法或者屬性名稱既可(方法需要跟上參數(shù)表,屬性需要加美元符號  )。

二十八、類的構(gòu)造方法

 類的構(gòu)造函數(shù)是在為類實例化一個對象是會執(zhí)行的一個方法。在PHP中使  用特殊的函數(shù)__construct()來表示類的構(gòu)造方法(雙下劃線加construct  加上一對括號來表示)。構(gòu)造函數(shù)一般用于初始化類的一些重要屬性。
 其語法格式:

 class classname
   {
              var $var;
       function __construct([$var])
                 {
                      ......
                 }
          }

 在一個類中只能聲明一個構(gòu)造方法,而且只有在每次創(chuàng)建對象時調(diào)用一 
 次構(gòu)造方法,不能主動地調(diào)用這個方法。所以通常用構(gòu)造方法執(zhí)行一些
 有用的初始化任務(wù)。如對對象屬性在創(chuàng)建時賦初值。

二十九、檢查類是否定義

 PHP系統(tǒng)總檢查類是否被定義用 class_exists(),語法格式:

 bool class_exists(string $class_name[,bool $autoload])

三十、  返回類的方法名

 PHP中系統(tǒng)函數(shù)中得get_class_methods()函數(shù),可以將類的方法以數(shù)組
 的形式返回,該函數(shù)的語法格式:

 array get_class_methods(string $class_name)

三十一、返回類的屬性

 PHP還可以使用系統(tǒng)函數(shù)返回類中屬性的名稱。使用get_class_vars()即 
 可返回由類的默認(rèn)屬性組成的數(shù)組。該代碼的語法格式:

        array get_class_vars(string $class_name)

三十二、返回對象的類名

 使用PHP中得系統(tǒng)函數(shù)get_class()可以返回指定對象所屬的類的名稱。
 該函數(shù)的語法格式如下:

 string get_class([object $obj])

三十三、檢查類與對象的關(guān)系

 PHP提供了用于檢查類與對象關(guān)系的關(guān)鍵字:instanceof,使用該關(guān)鍵字
 可以判斷某一個對象是否是類的子類。該操作符的語法格式如下:

 $object instanceof $class_name

三十四、檢查方法是否存在

 PHP中用于檢查類中指定方法是否存在的函數(shù)是:method_exists()
 該函數(shù)的語法格式如下:

 bool method_exists(object $object,string $mothod_name)

三十五、檢查屬性是否存在

 PHP中使用property_exists()函數(shù)可以檢查屬性是否存在
 該函數(shù)的語法格式為:
 
 bool property_exists(mixed $class,string $property)

三十六、數(shù)據(jù)庫的操作

 鏈接到數(shù)據(jù)庫:

 使用PHP中得函數(shù)mysql_connect()可以鏈接到指定的MySQL服務(wù)器,
 該函數(shù)語法為:

 resource mysql_connect([string server[,string username   [,string password[,bool new_link[,int client_flags]]]]])
       
 以上代碼中:參數(shù)server為服務(wù)器名稱;參數(shù)username為鏈接服務(wù)器的
 用戶名;參數(shù)password為連接密碼;參數(shù)new_link為布爾型變量,指定
 是否建立一個姓的連接;參數(shù)client_flags可以是一下常量的組合,
 MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS,     MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE,
 該參數(shù)決定建立連接的客戶端常量。如果成功執(zhí)行函數(shù)將會建立到指定
 服務(wù)器的連接,否則將會返回FALSE。

 

發(fā)布:2007-03-31 14:47    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
南昌OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普南昌網(wǎng)站建設(shè)公司其他應(yīng)用

南昌OA軟件 南昌OA新聞動態(tài) 南昌OA信息化 南昌OA快博 南昌OA行業(yè)資訊 南昌軟件開發(fā)公司 南昌門禁系統(tǒng) 南昌物業(yè)管理軟件 南昌倉庫管理軟件 南昌餐飲管理軟件 南昌網(wǎng)站建設(shè)公司