-
1、对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。 class Car { public $name = 'car'; } $a = new Car(); $str = serialize($a); //对象序列化成字符串 echo $str.'<br>'; $b = unserialize($str); //反序列化为对象 var_dump($b); 2、对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。 class Car { public $name = 'car'; public function __clone() { $obj = new Car(); $obj->name = $this->name; } } $a = new Car(); $a->name = 'new car'; $b = clone $a; var_dump($b);查看全部
-
魔术方法: PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。 class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); } } $car = new Car(); $car->name = '汽车'; //name属性动态创建并赋值 echo $car->name; 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。 class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } } } $car = new Car(); $car->speedUp(); //调用不存在的方法会使用重载 echo $car->speed;查看全部
-
子类调用父类方法parent::function查看全部
-
$car->speedUp(); // 实例调用静态方法 echo $car::$speed; // 实例调用静态属性查看全部
-
1、受保护的继承后可以访问,私有的只能在该类中访问,不会被继承访问查看全部
-
1、如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。 2、默认为公有查看全部
-
1、构造函数为__construct,析构函数为__destruct 2、在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。查看全部
-
1、静态属性不允许对象使用->操作符调用。 2、静态方法只能使用静态属性,不能使用类的非静态属性查看全部
-
1、Exception e中含有的方法有 getTaracAsString 获取追踪信息 getMessage 获取错误提示信息 getLine 获取异常行号 getFile 获取文件名 2、PHP写文件可以直接用file_put_content(file,content);查看全部
-
,Cookie通过HTTP headers从服务端返回到客户端。查看全部
-
$matches[0]里面包含着li,$matches[1]包含着item 1,item 2查看全部
-
摘自:http://www.imooc.com/u/2417293/course/26/codes?sort=chapter <?php setcookie('name','xiefei'); //就像数组一样,数组名问为$_COOKIE, ///第一个参数为键值,如:$_COOKIE['name']的值为xiefei ob_start();// ob是output buffering的缩写,输出缓存的意思, //使用ob_start();后输出语句就会把要输出的内容输出到缓存区 print_r($_COOKIE); //将$_COOKIE数组中的值输出到缓存区 $content=ob_get_contents();//把缓存区的数据以数组形式保存入$content变量 $content=str_replace(' ', $nbsp, $content); //这个函数不是一定要加, //你可以试着改变一下下边的变量$i看看加和不加的区别 ob_clean(); //至少在这里加不加对下显示结果无影响,具体自己百度 header('content-type:text/html; charset=utf-8'); echo '当前的Cookie为:<br>'; echo nl2br($content);//能够在字符串里每一行前加换行 /*比如$arr=' 输出结果就是这样的: sadadasd sadadasd sadadasd'; sadadasd */ $i=0; while ($content[$i]!=NULL) { echo $content[$i]; $i++; } echo '<br>'."\$i=$i"; ?>查看全部
-
1.PHP5中可以在类中使用__construct()创建构造函数,即在相应的对象每次被创建时就执行的函数内容。 2.同时可以使用__destruct()创建结构函数,即在此对象被销毁时或者此对象的所有引用被删除时执行的函数。 3.PHP5会在PHP语句执行完毕后自动回收和销毁对象,因而不必专门销毁对象。 4.使用class abc extends Car 表示创建一个名为abc的Car的子类。 5.如果子类中定义有__construct函数,则在子类对象被创建时默认只会调用子类的__construct函数. 6.如果需要同时调用父类__construct函数,可以在子类__construct函数中声明 parent::__construct();查看全部
-
<?php $filename = '/data/webroot/usercode/resource/test.txt'; //编写代码读取$filename的文件内容 echo file_get_contents($filename);查看全部
-
替换里,$0代表替换全部重复的?查看全部
举报
0/150
提交
取消