014对象——对象 __isset __unset __sleep __wakeup
<?php /**
*
*/
/*class lantian
{
public $name;
public $age;
private $money;
public $c;
function __construct($name, $arg = '', $money)
{
$this->name = $name;
$this->age = $arg;
$this->money = $money;
} function __isset($var)
{
//设置可以在外面检验的变量
$array = array('name', 'age');
if (in_array($var, $array)) {
// return isset($this->money);
echo $var . "属性存在,他的值是:" . $this->$var;
} elseif (in_array($var, array_keys(get_object_vars($this)))) {
echo "变量不允许外部检测";
return;
} else {
echo "属性不存在";
}
}
//利用魔术:__unset()可以删除私有的属性
function __unset($c)
{
if ($c=='age'){
unset($this->$c);
echo "删除属性{$c}成功";
}else{
echo "不允许删除属性{$c}";
}
}
function get_money(){
echo $this->money;
}
} $lisi = new lantian("李四", 22, 5500); //isset($lisi->name); //获取当前的页码
//echo isset($_GET['page'])?$_GET['page']:1;
$lisi->c=200;
//echo $lisi->c;
unset($lisi->age);
//echo $lisi->get_money();*/ /*$array1=array('php','html','mysql');
$str=serialize($array1);//serialize() 产生一个可存储的值的表示。序列化数据
$array2=unserialize($str);//unserialize() 从已存储的表示中创建 PHP 的值。反序列化
print_r($array2);*/ /*class db{
private $host;
private $user;
private $pwd;
private $dbname;
function __construct($host,$user,$pwd,$dbname)
{
$this->host=$host;
$this->user=$user;
$this->pwd=$pwd;
$this->dbname=$dbname;
$this->db();
}
function db(){
$mysqli=new mysqli($this->host,$this->user,$this->pwd,$this->dbname);
}
function select(){
$sql="SELECT cate_id,cate_name FROM blog_category";
$result=$this->mysqli->query($sql);
while ($row=$result->fetch_assoc()){
$rows[]=$row;
}
print_r($rows);
}
//反序列化魔术函数
function __wakeup()
{
$this->db();
}
}
session_start(); //打开session();
$chanel=new db('localhost','root','','blog');
//$chanel->select();
//保存查找的内容,进行序列化,在别的页面进行调用:
//$chanel_obj=serialize($chanel);
//var_dump($chanel_obj); $_SESSION['chanel_obj']=serialize($chanel); //保存序列化之后的数据到session中。
echo serialize($chanel);*/ //
class ren{
private $name;
private $age;
function __construct($name,$age)
{
$this->name=$name;
$this->age=$age;
}
function show(){
echo "姓名是:{$this->name} 年龄是:{$this->age}";
}
//魔术方法:__sleep()指定序列化的属性
function __sleep()
{
//return array('name','age'); //获取类的属性:
print_r(array_keys(get_object_vars($this)));//get_object_vars()获取对象的变量属性:
}
}
$zao=new ren('赵六',22);
echo serialize($zao);
<?php
/**
*/
session_start();
include '14.php';
$channel_obj=unserialize($_SESSION['channel_obj']);
$channel_obj->select();
014对象——对象 __isset __unset __sleep __wakeup的更多相关文章
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...
- php对象: __clone, __toString, __call,__isset, __unset, __sleep, __wakeup,
__clone: 克隆对象,自动完成操作 clone() __toString: return返回字符串 __call: 当调用不存在的函数时,自动执行该方法,并返回相关值 __isset: ...
- PHP中的魔术方法:__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload
1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $ ...
- PHP中的魔术方法总结:__construct,__destruct ,__call,__callStatic,__get,__set,__isset, __unset ,__sleep,__wakeup,__toString,__set_state,__clone,__autoload
1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法__set( $property, $value ...
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...
- php __set() __get() __isset() __unset()四个方法的应用
一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取 和赋值操作是非常频繁的,因此在PHP5 中,预定义了两个函数“__get()”和“__set()”来获 取和赋值其 ...
- [PHP] 魔术方法__get __set __sleep __wakeup的实际使用
1.__get __set是在给不可访问属性赋值和读取时,调用 2.__sleep 是在序列化对象的时候调用 3.__wakeup是在反序列化对象的时候调用 4.可以在序列化对象的时候 , 只序列化指 ...
- PHP中面相对象对象的知识点整理
面向对象 万物皆对象,将构成问题的事务分解到各个对象上,建立对象的目的不是为了完成一个工作,而是为了描述某个事务在解决问题中的行为,更符合人的思维习惯,代码重用性高,可扩展性. ___________ ...
- json 字符串转换成对象,对象转换成json字符串
json 字符串转换成对象,对象转换成json字符串 前端: 方法一: parseJSON方法: [注意jquery版本问题] var str = '{"name":&qu ...
随机推荐
- mysql 中sum (if()) 用法
原表: id fenlei time 1 分类1 20130316 2 分类2 20130316 3 分类3 20130317 ...
- Keras网络层之常用层Core
常用层 常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接.激活层等 Dense层 keras.layers.core.Dense(units, activation=None ...
- [cocos2dx笔记006]流格式日志
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zdhsoft/article/details/36001945 在cocos2dx 2.2.2版本号 ...
- 001-前端系列-react系列
一.概述 原文地址:http://www.ruanyifeng.com/blog/2016/09/react-technology-stack.html 二.摘要 ES6 语法:教程 [可以了解] B ...
- 关于线程安全Dictionary
使用Dictionary时, 是线程不安全的(). 会出现以下的问题, 导致IIS挂掉: 其实DicMapper是不为NUL的, DicMapper["aaasdfasdfasdfzxc ...
- HDU - 6393 Traffic Network in Numazu (LCA+RMQ+树状数组)
这道题相当于将这两题结合: http://poj.org/problem?id=2763 http://codeforces.com/gym/101808/problem/K 题意:有N各点N条边的带 ...
- python进阶——进程/线程/协程
1 python线程 python中Threading模块用于提供线程相关的操作,线程是应用程序中执行的最小单元. #!/usr/bin/env python # -*- coding:utf-8 - ...
- 【笔记】css3实现网页平滑过渡效果...
参考:http://www.imooc.com/video/7142 未完. <!DOCTYPE html> <html> <head> <meta char ...
- 【JavaScript】动态的小球
参考: 1.CSS 对比 JavaScript 动画 2.CSS制作水平垂直居中对齐_水平居中, 垂直居中 教程_w3cplus:https://www.w3cplus.com/css/vertica ...
- length与size()
List li = new ArrayList(20);System.out.println(li.size()) ;// 0 int [] arr = new int [20];System.ou ...