zoukankan      html  css  js  c++  java
  • PHP 基础知识代码总结

    PHP 基础知识代码总结

    转自:http://www.cnblogs.com/daomul/p/3357197.html

    一、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."
    ",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 ?>
    复制代码
  • 相关阅读:
    CentOS 7配置LNMP开发环境及配置文件管理
    Virtual Box配置CentOS7网络(图文教程)
    HTTP常用状态码分析
    MySQL数据库和InnoDB存储引擎文件
    InnoDB关键特性学习笔记
    InnoDB体系结构学习笔记
    Laravel 5.x 请求的生命周期(附源码)
    PyQt5 signal and slot
    x01.gamelab: An Tank 3D Model
    x01.AntWorld: An Python AI Game
  • 原文地址:https://www.cnblogs.com/harry335/p/4554314.html
Copyright © 2011-2022 走看看