PHP 基础知识代码总结

一、PHP基础语法 变量到数组

  1 <?php

  2        //phpinfo();

  3        

  4        /* 变量

  5        $a=1;//不分配空间

  6        echo "\$a=".$a;

  7        echo "<br/>";

  8        var_dump($a);// 结果为NULL

  9        echo "hello worrld";*/

 10        

 11        /* int型最大能表示多大

 12         echo "<br/>".PHP_INT_SIZE;

 13        echo "<br/>".PHP_INT_MAX;//(2的31次方-1) 31:4*8-1个符号位

 14        $a=-2147483648;

 15        echo "<br/>".$a;

 16        var_dump($a);//超过int型 范围 则会变为float类型*/

 17        

 18        /* 布尔值

 19        $d=0.0;

 20        if(!$d){

 21            echo "!!";

 22            }*/

 23        /* 浮点数

 24        浮点数精度是14(从左边开始,第一个非0就是精度的开始)*/

 25        

 26        /*字符型

 27        

 28        单引号和双引号区别

 29        

 30        $d=90;

 31        $d1="$d";

 32        $d2='$d';

 33        echo $d1;

 34        echo $d2;*/

 35        

 36        //$a=7/5.1;

 37        //echo $a;

 38        

 39        # === 包括类型也相等

 40        /*$a=2;

 41        $b=2.0;

 42        if($a!=$b)

 43        {

 44            echo"!=";

 45            }

 46            if($a!==$b)# !== 包括类型也不相等

 47            {

 48                echo "!==";

 49                }*/

 50        

 51        /*  &&和||只要前面的一个为真假即不执行后一个 

 52            and 和 or 则不是

 53            or的优先级比=低  所以  

 54            $e=false or true; //结果为false,因为此时$e先赋值为FALSE

 55            var_dump($e);

 56            $f=true and false;//结果为true,因为此时$e先赋值为true

 57            var_dump($f);*/

 58            

 59        /*字符串拼接

 60           $a="1";$b="2";

 61           $c=$a.$b;

 62        */

 63        

 64        /* 对象类型运算符

 65        

 66        class Dog{}

 67        $dog=new Dog;

 68        var_dump($dog instanceof Dog);

 69        

 70        $a=3;

 71        echo $a++*3;//9*/

 72        

 73        /*常量

 74        define("TAX_INT",21);

 75        #$TAX_INT=9;

 76        echo TAX_INT;

 77        

 78        const TAX_TWO=0.3;

 79        echo "<br/>".TAX_TWO; */

 80        

 81        /*

 82        #require 'other.php';//不会判断是否重复,可能导致重复输出

 83        require_once 'other.php';// 先判断是否有重复引入

 84        

 85        #include '111other.php';

 86        #include_once 'other.php';

 87        

 88        #require 和include区别:

 89           #include如果出现了错误会继续执行,

 90         #而require则会终止程序

 91        

 92        #echo "22";

 93        

 94        $i=2;

 95        $result=getNum($i);//传值,也可以传地址&

 96        echo $result;*/

 97        

 98        /*全局变量 global

 99        $a=1;

100        function get()

101        {

102            global $a;//可作用于局部内了

103            $a++;

104            }

105            get();

106            echo $a;

107        */

108        

109        /*数组初始化

110        //$array=array(1.2,12,"wrwe",true);

111        //echo count($array);

112        

113        $arr=array("log"=>"daomul","mima"=>123);

114        echo count($arr)."<br/>";

115        foreach($arr as $key=>$val)

116        {

117             echo $key."=".$val."<br/>";

118            }

119            

120            $arr2=array(""=>"32",1=>"fdsf",23,23);

121            echo $arr2[""]."<br/>";

122            echo $arr2[2]."<br/>";

123            

124            #使用true作为下标,即是1 ,false :0;  null:""

125            

126            $arr3=array(123.4=>"arr3");

127            echo $arr3[123]."<br/>";

128            

129            #显示详细数组信息

130            print_r($arr3); echo "<br/>";

131            var_dump($arr3);

132            

133            #数组可以动态增长

134            $arr4=array(2,3);

135            echo $arr4[1]."<br/>";

136         $arr4[2]='11 22 333 444';

137         #echo $arr4[2];

138         

139         #字符串的拆分 explode

140         $arr=explode(" ",$arr4[2]);

141         print_r($arr);

142         

143         foreach($arr as $key=>$val)# (要循环的数组 as 数组下标变量)

144         {

145             echo "<br/>$key=>$val";

146             }

147             

148             echo "<br/>".$arr[1];

149             unset($arr[1]);#销毁数组元素后,关键字下标不会被重新填充组合

150             print_r($arr);*/

151             

152             /*数组运算 叠加

153             $a=array("a"=>12,"b"=>23);

154             $b=array("a"=>21,"c"=>43);

155             $a=$a+$b;

156             print_r($a);*/

157             

158             

159 ?>

二、数组

 

 1 <html>

 2     <head>

 3         <meta http-equiv="content-type" content="text/html;charset=utf-8">

 4     </head>

 5     <body>

 6         <h1> 同一个界面传输参数</h1>

 7         

 8         <?php

 9           /* 在 input中加 value="<?php echo $grades; ?>" 仿造百度搜索 */

10          error_reporting(E_ALL ^ E_NOTICE);

11         $grades=$_REQUEST['grade'];  

12         $grade=explode(" ",$grades);

13         $all=0;

14         foreach($grade as $k=>$v)

15         {

16             $all+=$v;

17         }

18       ?>

19     

20         <form action="test.php" method="post">

21             <input type="text" name="grade"  value="<?php echo $grades; ?>"/>

22             <input type="submit" value="start"/>

23         </form>

24         

25         <?php

26            echo "总的:".$all;        

27         ?>

28     </body>

29 </html>

 

 三、静态变量

 1 <?php

 2   

 3       class Child

 4       {

 5           public static $num=0;

 6           public $name;

 7           function __construct($name) //只有new之后才能调用

 8           {

 9               $this->name=$name;

10               }

11               //静态变量不能用this来访问

12           public function join()

13           {

14               self::$num+=1;  //可以: Child::$num

15               echo $this->name."you"; 

16           }    

17       }

18       

19       $child1=new Child("k");

20       $child1->join();

21       $child1=new Child("a");

22       $child1->join();

23       $child1=new Child("b");

24       $child1->join();

25       echo "<br/>".Child::$num;

26       //类外只能是  类名::变量,

27           //类内就能两种

28 ?>

四、继承/封装/多态/抽象

  1     /*class Child

  2       {

  3           public static $num=0;

  4           public $name;

  5           //构造方法

  6           function __construct($name) //只有new之后才能调用

  7           {

  8               $this->name=$name;

  9               }

 10               //静态变量不能用this来访问

 11           public function join($ifee)

 12           {

 13               self::ifee+=1;  //可以: Child::$num

 14               echo $this->name."you"; 

 15           }    

 16       }

 17       

 18       $child1=new Child("k");

 19       $child1->join();

 20       $child1=new Child("a");

 21       $child1->join();

 22       $child1=new Child("b");

 23       $child1->join();

 24       echo "<br/>".Child::$num;

 25       //类外只能是  类名::变量,

 26           //类内就能两种*/

 27           

 28           

 29           

 30    //静态方法不能采用非静态变量,只能使用非静态变量

 31     // 成员函数之间相互调用,需要用  $this->text();

 32     

 33     //继承

 34     

 35     //1、子类只能继承一个父类

 36     // 如果想多重继承可以考虑通过多次继承:

 37     /*class A{}

 38     class B extends A{}

 39     class C extends B{}*/

 40     

 41     //2、父类中的构造方法,在创造一个子类的对象实例的时候不会默认自动调用

 42     //3、 子类中调用父类的方法   

 43         //父类名::方法名(); /  parent::方法名(); parent小写的

 44         

 45     //覆盖:

 46          # 子类的方法和父类的方法名称和参数个数完全一样,但不要求参数名相同

 47          # 但是修饰符可以不同,但是子的范围〉=父类范围

 48          # 父类是private则不能覆盖

 49     /*class A{

 50         function F(){

 51            echo " 父类在此!<br/>";

 52         }

 53     }

 54     class B extends A{}

 55     class C extends B{

 56         function F(){

 57             echo "调用了父类了<br/>";

 58             parent::F();

 59             A::F();

 60         }

 61     }

 62     $C1=new C();

 63     $C1->F();*/

 64     

 65     //抽象类:父类中不需要被实例化,只让子类继承,也可以被调用里面的;达到代码复用

 66     

 67       #抽象类   abstract class name{}

 68       #抽象方法 abstract public cry();

 69       #抽象类不一定也有抽象方法

 70       #类包含抽象方法则必须为抽象类

 71       #子类继承抽象父类,则必须为抽象类或者实现继承的所有,所有!方法

 72       

 73       

 74       //接口:interfacde 接口{//属性 //方法} 

 75        #  只能定义规范,让类去实现接口 ,不能自己实现,

 76        #  class c implements 接口{}

 77        #  接口不能被实例化/接口能继承其他多个接口/不能不为public

 78        # 一个类实现了一个接口,必须把接口以及其继承的接口的方法全部实现

 79        # (1 多个平级的类都要实现某个功能,只是实现方式不同,没有继承关系,  

 80        #(2 项目经理定规范,让其他程序员实现

 81        /*interface Stu

 82        {

 83              const A=90; 

 84           public function add();    

 85        }

 86        interface Stu2{}

 87        

 88        class MyStu implements Stu,Stu2

 89       {

 90           public function add()

 91           {

 92               echo "dddd".Stu::A."<br/>";

 93           }

 94       }

 95       $mystu=new MyStu();

 96       $mystu->add();

 97        echo "OK".Stu::A; #获得接口中的常量*/

 98        

 99        //final 使类中的方法不被覆盖

100        # final 不能修饰成员属性

101        /*class A

102        {

103            final public function get($salary)

104            {

105              return $salary*3;

106                }

107        }

108        class B extends A

109        {

110             public function get($sal)

111             {

112               return $sal*2;    

113             }

114            }

115            $b=new B();

116            $b->get("21"); #Cannot override final method A::get() */

117            

118            //const常量

119            # 要赋初始值;不能后面赋值;不能加$等修饰符

120            # self::A ; 类名::A ;接口名::A;  等方式获得常量A的值

五、文件操作以及错误处理

 

 1 <?php

 2   

 3   // 文件操作

 4   /*处理错的方式1

 5   if(!file_exists("file1.txt"))

 6   {

 7       echo "not here";

 8       exit();

 9   }

10   else

11   {

12       $fp=fopen("file1.txt","r");

13       echo "文件已打开";

14       fclose($fp);

15   }*/

16   

17   /* 处理错的方式2

18   if(!file_exists("a.txt"))

19   {

20       die("wenjianbucunzai");

21   }

22   else

23   {}

24   echo "end";*/

25   /*处理错的方式1

26   

27   file_exists("b.txt") or die("zhen de ");

28   echo "end";

29   */

30   

31   //定义错误函数

32   /*function my_error($error,$err_message)

33   {

34     echo "<font size='5' color='red'> $error </front><br/>";//2

35     //echo "错误信息是:".$err_message;

36     exit();

37       }

38 

39   //改变系统默认的错误处理函数(“用户自己定义的错误输出函数”,“错误类型”)

40    set_error_handler("my_error",E_WARNING);

41    $fp=fopen("aa.txt",'r');*/

42    

43    //错误触发器

44    

45    function my_error3($error,$err_message)

46    {

47          echo "错误号:".$error;

48        }

49        function my_error4($error,$err_message)

50        {

51            echo "big big!";

52            }

53    set_error_handler("my_error3",E_USER_WARNING);//

54    set_error_handler("my_error4",E_USER_ERROR);//致命错误,不继续执行

55    $age=140;

56    if($age>120)

57    {

58        //调用触发器的时候指定错误级别

59          trigger_error("输入的数字过大!",E_USER_ERROR);

60          //trigger_error("输入的数字过大!",E_USER_WARNING);

61          //exit();

62        }

63        echo "ok";

64 ?>

 六、错误日志

 1 <?php

 2  

 3  //错误日志 php.ini 中的error_log的配置

 4  

 5  function my_error5($error,$err_meaasge)

 6  {

 7        $err_info="错误信息:".$error."--".$err_meaasge;

 8        //echo time();

 9        //输出 当前日期

10        //     调整时区:默认时期是UTC和中国差8小时 PRC 或者Asia/Chongqing

11        

12        date_default_timezone_set("PRC");

13       

14        echo date("Y-m-d G-i-s");

15        echo "<br/>".$err_info;

16        

17        #将错误存入系统文件中

18        error_log("时间是:".date("Y-m-d G-i-s")."-".$err_info."\r\n",3,"myerror.txt");//3个参数

19      }

20      set_error_handler("my_error5",E_USER_WARNING);

21      $i=1;

22      if($i<2)

23      {

24          trigger_error("输入的数字过小",E_USER_WARNING);

25      }

26 ?>

 七、捕获异常

 1 <?php

 2   

 3   //处理异常

 4   #注意事项:异常抛出之后,得代码不会被继续执行

 5   #抛出异常之后如果没用处理则会报错

 6   try

 7   {

 8       addUser("1a");

 9   }

10   catch(Exception $e)

11   {

12       echo "失败信息:".$e->getMessage();//getLine()

13       #可以继续抛出 throw $e;

14       #也可以顶一个顶级异常处理

15       # $i=8/0  fopen("a.txt","r") 很难抛出异常

16   }

17   

18   function addUser($user)

19   {

20       if($user=="a")

21       {

22          echo "登陆成功!";

23       }

24       else

25       {

26          throw new Exception("用户名错误!");

27       }

28   

29   }

30   

31   /*#顶级异常处理

32   function my_error()

33   {

34       echo "我是顶级异常处理!".e->getMeaasge();

35   }

36   set_error_handler("my_error");*/

37 

38 ?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(PHP)