标签:
function __wakeup(){
echo "返串行化开始:";
$this->name = "sce";
}
课时166 PHP数组的串行化(JSON格式)
//串行化
$str = json_encode($arr);
//返串行化,第二个参数true返串行化为数组
$prr = json_decode($str,true);
echo $prr[‘name‘];
?>
结果:
课时167 魔术方法__set_state()
function say(){
}
static function __set_state($arr){ //方法必须是静态的.
$p = new person("lisi",43,"woman");
$p->name = $arr[‘name‘];
$p->age = $arr[‘age‘];
return $p;
}
}
$b = new person("zhangsan",20,"man");
$b ->name = "liiii";
$b ->age = 234;
eval(‘$c =‘.var_export($b,true).";");
var_dump($c);
?>
object(Person)[2] public ‘name‘ =>string
‘liiii‘ (length=5) public ‘age‘ =>int
234 public ‘sex‘ =>string
‘woman‘ (length=5)
课时168 PHP 5.3以后新增的魔术方法
__invoke()
在对象实例之后,直接像变量函数一样直接调用这个对象,引用后加上()自动调用这个方法.
__callstatic()
跟__call()一样,但是它是用来处理静态方法的.而且自身也必须是静态的.
课时169 自动加载类__autoload()
__autoload()
只要在这个脚本中,需要加载类的时候,就会自动调用这个方法.
<?php
// 一个文件放一个类, 文件名就是类名. 再加二级域名class.
function __autoload($classname){
include strtolower($classname)."class.php";
}
?>
课时170 PHP抽象方法和抽象类1
* 1.什么是抽象方法?
* 定义:一个方法如果没有方法体(一个方法,不使用"{}",直接使用分号结束的方法,才是没有方法体的方法),则这个方法就是抽象方法
*
* 一.声明一个方法,不实用{},而直接以分号结束
* 二.如果是抽象方法,必须使用abstract(抽象关键字来修饰)
* 2.什么是抽象类?
* 一.如果一个类中有一个方法是抽象的方法,则这个类就是抽象类
* 二.如果声明一个抽象类,则这个类必须要使用abstract来修饰
*
* 注意:
* 1.只要使用 abstract 修饰的类,就是抽象类
* 2.抽象类是一种特殊的类,特殊在抽象类中可以有抽象方法
* 3.除了在抽象类中可以有抽象方法以外,和正常的类完全一样
abstract class person { //抽象类
//抽象方法
abstract function say();
}
class student extends person {
function say(){
echo "子类实现功能";
}
}
$s = new student();
$s -> say();
class Demo {
}
abstract class Demo2 {
}
interface Demo3 {
const NAME = "sss";
function test();
}
echo Demo3::NAME;
?>
课时173 PHP接口应用的一些细节
interface Test extends Demo3 {
function test2();
}
class hello implements Demo3 {
function test(){
}
}
echo Demo3::NAME;
课时174 PHP面象对象的特性多态
课时175 PHP多态的应用实例
interface USB { //创建接口USB
const WIDTH = 12;
const HEIGHT = 3;
function load();
function run();
function stop();
}
class computer {
function useUSB(USB $usb) { //参数里边类和接口是可以用类名来限制的. 这个方法里只能传这个接口或类的对象.
$usb -> load();
$usb -> run();
$usb -> stop();
}
}
class Mouse implements USB{
function load(){
echo "加载鼠标成功<br>";
}
function run(){
echo "运行鼠标<br>";
}
function stop(){
echo "鼠标拔出<br>";
}
}
class keyPress implements USB {
function load(){
echo "加载键盘<br>";
}
function run(){
echo "运行键盘<br>";
}
function stop(){
echo "停止键盘<br>";
}
}
class worker {
function useing(){
$c = new computer();
$m = new Mouse();
$k = new KeyPress();
$c -> useUSB($k);
$c -> useUSB($m);
}
}
$wk = new worker();
$wk ->useing();
?>
标签:
原文地址:http://www.cnblogs.com/Xavier13/p/4207899.html