;// 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教程有兴趣的朋友有所帮助。
