首页 > 编程 > PHP > 正文

PHP 基础知识代码总结

2020-03-22 17:48:13
字体:
来源:转载
供稿:网友
#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;*/ /*html' target='_blank'>全局变量 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 = $b=array( a = 21, c = $a=$a+$b; print_r($a);*/
/* 在 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- */ //抽象类:父类中不需要被实例化,只让子类继承,也可以被调用里面的;达到代码复用 #抽象类 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 //处理异常 #注意事项:异常抛出之后,得代码不会被继续执行 #抛出异常之后如果没用处理则会报错 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 */? 


相关推荐:

PHP调用ffmpeg对视频截图并拼接脚本

Yii2中的场景(scenario)和验证规则(rule)的详解

MixPHP、Yii和CodeIgniter的并发压力测试的小结

以上就是PHP 基础知识代码总结的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表