xue,age=>25);//var_dump($arr1);////定义二维数组//$arr2 = array(// 0=>$arr,// 1=>$arr1//);//var_dump($arr2);//$arr3[] = $arr1;//$arr3['xxx'] = $arr2;//$arr3[7] = 33;//var_dump($arr3);////$arr4 = array();//var_dump($arr4);////echo arr4的元素为:,count($arr4);//数组排序//1.sort,以升序对数组排序///* * 超全局变量,可以在任何位置使用 * $globals 保存全部的全局变量 * $_server 保存报头,路径,和脚本位置 * $_request 用户保存html表单提交的数据 * $_post方式提交的表单 * $_get 以get方式提交的表单 * $_files 上传的文件信息 * $_files = array( * 'myfile'=>array( * [name] => 医刊通-投审稿-后台demo-20150912.zip [type] => application/zip [tmp_name] => c:\windows\temp\phpdeb7.tmp [error] => 0 [size] => 507713 * ) * ) * $_env环境变量 * $_cookie * $_session *///session_start();//$_session['name'] = xue;//var_dump($_session);//print_r($_server);//if(!empty($_post['sub']))//print_r($_files['myfile']['tmp_name']);/* * 日期和时间 * date(format,timestamp); * format:格式化 * timpstamp:时间戳,默认为当前时间时间戳 * format: * d:一月中的某天 01-31 * * * m:一年中的某月 01-12 * m: 英文简写如九月 sep * * y: 年,4位数 * y: 年 2位数 (不带前面的0) * * l: 周里的某天,用英文表示,比如星期一monday * l: 周里的某天,用序号表示,比如星期一为0,星期二为1 * d: 星期几的简写 * * 其他字符,比如 /, . 或 - 也可被插入字符中,以增加其他格式。 * 时间格式: * h:带有首位0的12小时制的时 * h:24小时制 * i:带有首位0的份 00-59 * s:带有首位0的秒 00-59 * a:小写的午前和午后 * *//* * 创建日期 * 1.通过mktime() * mktime() 返回unix的时间戳,即为从1970年1月1日00:00:00到当期的秒数 * mktime(hour,minute,second,month,day,year) * 2.strtotime()用字符串来创建日期 * 将任何英文文本时间解析为unix时间戳 * strotime(string $time [, int $now ] ); * $now 为指定的时间,默认为当前时间 * 本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 unix 时间戳(自 january 1 1970 00:00:00 gmt 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间 strtotime的第一个参数可以是我们常见的英文时间格式,比如“2008-8-20”或“10 september 2000 ”等等。也可以是以参数now为基准的时间描述,比如“+1 day”等等。 * * *///// $time = mktime(12,20,1,9,10,date('y'));// $time = strtotime('next month');// echo date(y年m月d,h:i:sa,$time);/* * include require * 服务器端包含 (ssi) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。 * 不同: * require 如果发生错误会停止当前脚本的运行,给出 e_compile_error * include 如果发生错误会继续执行脚本的运行,给出 e_warning 警告 * 因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、cms 或者复杂的 php 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。 * *//* * 文件操作 * readfile() 读入文件的内容,向输出到输出流,返回字节数 ,读取成功在则返回字节数 * fopen(文件名,操作方式), *///readfile(indexa.php);//$file = fopen('index.php','r');//echo fread($file,filesize('index.php'));/* * 异常处理 * try{ * }catch(exception $ex){ * } * 自定义异常类 *///class myexception extends exception{// public function errormessage(){// echo 错误发生在.$this->file.中的第.$this->getline().行
;// echo 错误信息为:.$this->getmessage();// }//}//function hander(){// throw new exception(没有捕获的异常);//}//set_error_handler('hander');//function checknum($num) {// if ($num > 1) {// throw new myexception(value must below 1);// }//}//throw new exception('uncaught exception occurred');/* * 过滤 * 过滤函数 * filter_var 通过指定一个过滤器过滤单一的变量 * filter_var_array 通过相同或不同规定过滤器过滤多个变量 * filter_input 获取一个输入变量并对它过滤 * filter_input_array 获取多个变量,并通过相同或不同的过滤对他进行过滤 * *///$i = 123;//if(filter_var($i,filter_validate_int)){// echo 是整数;//}/* * mysql 操作 * 连接:mysql_connect(,,); * 执行:mysql_query(,$link); * *///$link = mysql_connect(localhost,root,root);//if($link){// if(mysql_query(create datebase my_db,$link)){// echo my_db被创建;// }else{// echo 创建失败;// echo mysql_error();// }//}else {// echo '链接失败';//}/* * 面向对象 * 1.构造方法 * __construct() 在php4中构造方法和类名一直,php5使用__construct,当没有__construct方法时,默认找与类名相同的方法 * 构造函数默认为public * */classperson {// var $name;//默认为public// var $age;var$name; var$age; publicfunction__construct($name,$age) {echo正在构造$name
; $this->name = $name; $this->age = $age; } publicfunction__set($name,$value){echo正在调用__set方法; $this->$name = $value; } publicfunction__get($name){echo正在调用__get方法
; if(isset($this->$name)){ return$this->$name; }else{ returnnull; } } publicfunctionsay(){echo$this->name.在说话他的年龄是:.$this->age.
; } publicfunction__destruct(){echo再见$this->name.
; }}//$p1 = new person(张三,20);//$p2 = new person(李四,23);//$p3 = new person(王五,25);//$p2->name = 薛兴海;//echo $p1->name.
;//$p2->say();//class student extends person{// var $college;// public function __construct($name,$age,$college) {// parent::__construct($name, $age);// $this->college = $college;// }// public function say(){//// person::say();// parent::say();// echo 他的学校是:.$this->college,
;// }//}//$stu = new student(张三,23,清华大学);//echo $stu->say();classmyclass {public$public =public; protected$protected ='protected'; private$private = 'private'; publicfunctionprinthello(){echo$this->public,
; echo$this->protected,
; echo$this->private,
; } privatefunctionprivated(){ }}classsubextendsmyclass{publicfunctionsay(){parent::$this->privated(); }}//$s = new sub();//echo $s->public;//echo $s->say();/* * final 只用来定义类和方法, 不能用来定义成员属性 *///使用final修饰的类不能被继承classa{publicfinalfunctionsay(){ }}//使用final修饰的方法不能被子类覆盖//static 静态成员方法和静态成员属性classst {static$a = 3; var$msg; const con = 34324; publicfunction__construct($msg) {$this->msg = $msg; } publicfunctionsay(){echo$this->msg; } publicfunction__tostring() {return'st'; } publicfunction__clone() {echo正在克隆..; $this->msg = 我是假的; }}//__call 当调用类的不存在的方式时,调用__call//class call {// public function __call($name,$arg){// echo $name,方法不存在,参数为:,print_r($arg);// }//}//$p = new call();//$p->h(hah,3);/* * 抽象方法 * abstract function func(); * 没有{},后面必须加括号 * 只要类中有一个方法声明为抽象方法,那么此类就成为了抽象类,也必须用abatract修饰,抽象类可以包含非抽象方法,但至少有一个方法是抽象方法 * 抽象类不能实例化,只能为子类继承,子类必须实现父类所有的抽象方法后才能被实例化,否则子类任然为抽象类 * */abstractclassparents {const cont = 3; publicabstractfunctionfunc1();abstractfunctionfunc2();publicfunctionfunc3(){echoparent; }}classsubsextendsparents{functionfunc1(){ } functionfunc2(){ }}//$s = new subs();//$s->func3();/* * 接口 * 接口是一种特殊的抽象类,抽象类是一种特殊的类,所以,接口是一种特殊的类,如果一个抽象类的所有方法都为抽象方法,则此类就为接口 * 接口里面不能声明变量,可以声明常量 * 接口声明的关键字为interface ,不是class */interfacejk{const jj = 244; functionfunc1();//默认为public abstract functionfunc2();}classjimplementsjk{functionfunc1(){ } functionfunc2(){ }}$t = new j();$str =serialize($t); unserialize($str);classperson1{//下面是人的成员属性var$name; //人的名子var$sex; //人的性别var$age; //人的年龄//定义一个构造方法参数为属性姓名$name、性别$sex和年龄$age进行赋值function__construct($name = , $sex = , $age = ) {$this->name = $name; $this->sex = $sex; $this->age = $age; } //这个人可以说话的方法, 说出自己的属性functionsay() {echo我的名子叫: . $this->name . 性别: . $this->sex . 我的年龄是: . $this->age .
; } //指定串行化时把返回的数组中$name和$age值串行化,忽略没在数组中的属性$sexfunction__sleep() {$arr = array(name, age); // 此时,属性$sex将被删除!!!return($arr); } //重新生成对象时,并重新赋值$age为40function__wakeup() {$this->age = 40; }}$p1 = new person1(张三, 男, 20);//把一个对象串行化,返一个字符串,调用了__sleep()方法,忽略没在数组中的属性$sex$p1_string = serialize($p1);echo$p1_string .
; //串行化的字符串我们通常不去解析$p2 = unserialize($p1_string); //反串行化形成对象$p2重新赋值$age为40$p2->say();function__autoload($classname){require$classname.'.php';}new dm();
以上就介绍了php学习00,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。