PHP 基礎知識代碼總結

來源:互聯網
上載者:User
一、PHP基礎文法 變數到數組

<?php       //phpinfo();              /* 變數       $a=1;//不分配空間       echo "\$a=".$a;       echo "<br/>";       var_dump($a);// 結果為NULL       echo "hello worrld";*/              /* int型最大能表示多大        echo "<br/>".PHP_INT_SIZE;       echo "<br/>".PHP_INT_MAX;//(2的31次方-1) 31:4*8-1個符號位       $a=-2147483648;       echo "<br/>".$a;       var_dump($a);//超過int型 範圍 則會變為float類型*/              /* 布爾值       $d=0.0;       if(!$d){           echo "!!";           }*/       /* 浮點數       浮點數精度是14(從左邊開始,第一個非0就是精度的開始)*/              /*字元型              單引號和雙引號區別              $d=90;       $d1="$d";       $d2='$d';       echo $d1;       echo $d2;*/              //$a=7/5.1;       //echo $a;              # === 包括類型也相等       /*$a=2;       $b=2.0;       if($a!=$b)       {           echo"!=";           }           if($a!==$b)# !== 包括類型也不相等           {               echo "!==";               }*/              /*  &&和||只要前面的一個為真假即不執行後一個            and 和 or 則不是           or的優先順序比=低  所以             $e=false or true; //結果為false,因為此時$e先賦值為FALSE           var_dump($e);           $f=true and false;//結果為true,因為此時$e先賦值為true           var_dump($f);*/                  /*字串拼接          $a="1";$b="2";          $c=$a.$b;       */              /* 物件類型運算子              class Dog{}       $dog=new Dog;       var_dump($dog instanceof Dog);              $a=3;       echo $a++*3;//9*/              /*常量       define("TAX_INT",21);       #$TAX_INT=9;       echo TAX_INT;              const TAX_TWO=0.3;       echo "<br/>".TAX_TWO; */              /*       #require 'other.php';//不會判斷是否重複,可能導致重複輸出       require_once 'other.php';// 先判斷是否有重複引入              #include '111other.php';       #include_once 'other.php';              #require 和include區別:          #include如果出現了錯誤會繼續執行,        #而require則會終止程式              #echo "22";              $i=2;       $result=getNum($i);//傳值,也可以傳地址&       echo $result;*/              /*全域變數 global       $a=1;       function get()       {           global $a;//可作用於局部內了           $a++;           }           get();           echo $a;       */              /*數組初始化       //$array=array(1.2,12,"wrwe",true);       //echo count($array);              $arr=array("log"=>"daomul","mima"=>123);       echo count($arr)."<br/>";       foreach($arr as $key=>$val)       {            echo $key."=".$val."<br/>";           }                      $arr2=array(""=>"32",1=>"fdsf",23,23);           echo $arr2[""]."<br/>";           echo $arr2[2]."<br/>";                      #使用true作為下標,即是1 ,false :0;  null:""                      $arr3=array(123.4=>"arr3");           echo $arr3[123]."<br/>";                      #顯示詳細數組資訊           print_r($arr3); echo "<br/>";           var_dump($arr3);                      #數組可以動態增長           $arr4=array(2,3);           echo $arr4[1]."<br/>";        $arr4[2]='11 22 333 444';        #echo $arr4[2];                #字串的拆分 explode        $arr=explode(" ",$arr4[2]);        print_r($arr);                foreach($arr as $key=>$val)# (要迴圈的數組 as 數組下標變數)        {            echo "<br/>$key=>$val";            }                        echo "<br/>".$arr[1];            unset($arr[1]);#銷毀數組元素後,關鍵字下標不會被重新填充組合            print_r($arr);*/                        /*數組運算 疊加            $a=array("a"=>12,"b"=>23);            $b=array("a"=>21,"c"=>43);            $a=$a+$b;            print_r($a);*/                        ?>

二、數組

<html>    <head>        <meta http-equiv="content-type" content="text/html;charset=utf-8">    </head>    <body>        <h1> 同一個介面傳輸參數</h1>                <?php          /* 在 input中加 value="<?php echo $grades; ?>" 仿造百度搜尋 */         error_reporting(E_ALL ^ E_NOTICE);        $grades=$_REQUEST['grade'];          $grade=explode(" ",$grades);        $all=0;        foreach($grade as $k=>$v)        {            $all+=$v;        }      ?>            <form action="test.php" method="post">            <input type="text" name="grade"  value="<?php echo $grades; ?>"/>            <input type="submit" value="start"/>        </form>                <?php           echo "總的:".$all;                ?>    </body></html>

三、靜態變數

<?php      class Child      {          public static $num=0;          public $name;          function __construct($name) //只有new之後才能調用          {              $this->name=$name;              }              //靜態變數不能用this來訪問          public function join()          {              self::$num+=1;  //可以: Child::$num              echo $this->name."you";           }          }            $child1=new Child("k");      $child1->join();      $child1=new Child("a");      $child1->join();      $child1=new Child("b");      $child1->join();      echo "<br/>".Child::$num;      //類外只能是  類名::變數,          //類內就能兩種?>

四、繼承/封裝/多態/抽象

/*class Child      {          public static $num=0;          public $name;          //構造方法          function __construct($name) //只有new之後才能調用          {              $this->name=$name;              }              //靜態變數不能用this來訪問          public function join($ifee)          {              self::ifee+=1;  //可以: Child::$num              echo $this->name."you";           }          }            $child1=new Child("k");      $child1->join();      $child1=new Child("a");      $child1->join();      $child1=new Child("b");      $child1->join();      echo "<br/>".Child::$num;      //類外只能是  類名::變數,          //類內就能兩種*/                                 //靜態方法不能採用非靜態變數,只能使用非靜態變數    // 成員函數之間相互調用,需要用  $this->text();        //繼承        //1、子類只能繼承一個父類    // 如果想多重繼承可以考慮通過多次繼承:    /*class A{}    class B extends A{}    class C extends B{}*/        //2、父類中的構造方法,在創造一個子類的對象執行個體的時候不會預設自動調用    //3、 子類中調用父類的方法           //父類名::方法名(); /  parent::方法名(); parent小寫            //覆蓋:         # 子類的方法和父類的方法名稱和參數個數完全一樣,但不要求參數名相同         # 但是修飾符可以不同,但是子的範圍〉=父類範圍         # 父類是private則不能覆蓋    /*class A{        function F(){           echo " 父類在此!<br/>";        }    }    class B extends A{}    class C extends B{        function F(){            echo "調用了父類了<br/>";            parent::F();            A::F();        }    }    $C1=new C();    $C1->F();*/        //抽象類別:父類中不需要被執行個體化,只讓子類繼承,也可以被調用裡面的;達到代碼複用          #抽象類別   abstract class name{}      #抽象方法 abstract public cry();      #抽象類別不一定也有抽象方法      #類包含抽象方法則必須為抽象類別      #子類繼承抽象父類,則必須為抽象類別或者實現繼承的所有,所有!方法                  //介面:interfacde 介面{//屬性 //方法}        #  只能定義規範,讓類去實現介面 ,不能自己實現,       #  class c implements 介面{}       #  介面不能被執行個體化/介面能繼承其他多個介面/不能不為public       # 一個類實現了一個介面,必須把介面以及其繼承的介面的方法全部實現       # (1 多個平級的類都要實現某個功能,只是實現方式不同,沒有繼承關係,         #(2 專案經理定規範,讓其他程式員實現       /*interface Stu       {             const A=90;           public function add();           }       interface Stu2{}              class MyStu implements Stu,Stu2      {          public function add()          {              echo "dddd".Stu::A."<br/>";          }      }      $mystu=new MyStu();      $mystu->add();       echo "OK".Stu::A; #獲得介面中的常量*/              //final 使類中的方法不被覆蓋       # final 不能修飾成員屬性       /*class A       {           final public function get($salary)           {             return $salary*3;               }       }       class B extends A       {            public function get($sal)            {              return $sal*2;                }           }           $b=new B();           $b->get("21"); #Cannot override final method A::get() */                      //const常量           # 要賦初始值;不能後面賦值;不能加$等修飾符           # self::A ; 類名::A ;介面名::A;  等方式獲得常量A的值

五、檔案操作以及錯誤處理

<?php    // 檔案操作  /*處理錯的方式1  if(!file_exists("file1.txt"))  {      echo "not here";      exit();  }  else  {      $fp=fopen("file1.txt","r");      echo "檔案已開啟";      fclose($fp);  }*/    /* 處理錯的方式2  if(!file_exists("a.txt"))  {      die("wenjianbucunzai");  }  else  {}  echo "end";*/  /*處理錯的方式1    file_exists("b.txt") or die("zhen de ");  echo "end";  */    //定義錯誤函數  /*function my_error($error,$err_message)  {    echo "<font size='5' color='red'> $error </front><br/>";//2    //echo "錯誤資訊是:".$err_message;    exit();      }  //改變系統預設的錯誤處理函數(“使用者自己定義的錯誤輸出函數”,“錯誤類型”)   set_error_handler("my_error",E_WARNING);   $fp=fopen("aa.txt",'r');*/      //錯誤觸發器      function my_error3($error,$err_message)   {         echo "錯誤號碼:".$error;       }       function my_error4($error,$err_message)       {           echo "big big!";           }   set_error_handler("my_error3",E_USER_WARNING);//   set_error_handler("my_error4",E_USER_ERROR);//致命錯誤,不繼續執行   $age=140;   if($age>120)   {       //調用觸發器的時候指定錯誤層級         trigger_error("輸入的數字過大!",E_USER_ERROR);         //trigger_error("輸入的數字過大!",E_USER_WARNING);         //exit();       }       echo "ok";?>

六、錯誤記錄檔

<?php  //錯誤記錄檔 php.ini 中的error_log的配置  function my_error5($error,$err_meaasge) {       $err_info="錯誤資訊:".$error."--".$err_meaasge;       //echo time();       //輸出 當前日期       //     調整時區:預設時期是UTC和中國差8小時 PRC 或者Asia/Chongqing              date_default_timezone_set("PRC");             echo date("Y-m-d G-i-s");       echo "<br/>".$err_info;              #將錯誤存入系統檔案中       error_log("時間是:".date("Y-m-d G-i-s")."-".$err_info."\r\n",3,"myerror.txt");//3個參數     }     set_error_handler("my_error5",E_USER_WARNING);     $i=1;     if($i<2)     {         trigger_error("輸入的數字過小",E_USER_WARNING);     }?>

七、捕獲異常

<?php    //處理異常  #注意事項:異常拋出之後,得代碼不會被繼續執行  #拋出異常之後如果沒用處理則會報錯  try  {      addUser("1a");  }  catch(Exception $e)  {      echo "失敗資訊:".$e->getMessage();//getLine()      #可以繼續拋出 throw $e;      #也可以頂一個頂級異常處理      # $i=8/0  fopen("a.txt","r") 很難拋出異常  }    function addUser($user)  {      if($user=="a")      {         echo "登陸成功!";      }      else      {         throw new Exception("使用者名稱錯誤!");      }    }    /*#頂級異常處理  function my_error()  {      echo "我是頂級異常處理!".e->getMeaasge();  }  set_error_handler("my_error");*/?>


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.