php类相关知识---__unset和__isset
__unset 删除非公有属性,在外部调用unset时发生, __isset用来检测对象属性是否设置值
<?php
class coach
{
protected $chairfit = "徐晓冬";
protected $lover = "丁大锅";
public function __construct()
{
echo "欢迎来到~必图拳馆训练~";
}
public function __get($chairfit)
{
return $this->$chairfit;
}
public function __set($name,$value)
{
$this->$name=$value;
}
}
class cj extends coach
{
public $expertin = ['散打','泰拳','巴西柔术'];
}
$cj = new cj();
var_dump($cj);
$cj->lover='陈培昌';
var_dump(isset($cj->lover)) ;
?>
以为这样就能检测非公有属性是否设置?deeply sorry about that!
输出结果:
欢迎来到~必图拳馆训练~
bool(false)
正确姿势 <?php
class coach
{
protected $chairfit = "徐晓冬";
protected $lover = "丁大锅";
public function __construct()
{
echo "欢迎来到~必图拳馆训练~"."\n";
}
public function __get($chairfit)
{
return $this->$chairfit;
}
public function __set($name,$value)
{
$this->$name=$value;
}
#加上这段
public function __isset($name)
{
return isset($name);
}
}
class cj extends coach
{
public $expertin = ['散打','泰拳','巴西柔术'];
}
$cj = new cj();
//var_dump($cj);
$cj->lover='陈培昌';
var_dump(isset($cj->lover)) ;
?>
输出结果:
欢迎来到~必图拳馆训练~
bool(true)
<?php
class coach
{
protected $chairfit = "徐晓冬";
private $lover;
public function __construct()
{
echo "欢迎来到~必图拳馆训练~"."\n";
}
public function __get($chairfit)
{
return $this->$chairfit;
}
public function __set($name,$value)
{
$this->$name=$value;
}
public function __isset($name)
{
return isset($name);
}
public function __unset($name)
{
unset($this->$name);
}
}
class cj extends coach
{
public $expertin = ['散打','泰拳','巴西柔术'];
}
$cj = new coach();
//var_dump($cj);
$cj->lover='陈培昌';
var_dump($cj);
unset($cj->lover);
var_dump($cj); ?>
unset cj对象的lover属性之前,打印对象结果为:
object(coach)#1 (2) {
["chairfit":protected]=>
string(9) "徐晓冬"
["lover":"coach":private]=>
string(9) "陈培昌"
}
删除之后打印对象结果
object(coach)#1 (1) {
["chairfit":protected]=>
string(9) "徐晓冬"
}
php类相关知识---__unset和__isset的更多相关文章
- String 类相关知识
1.常用方法 1)判断字符串是否为空 public boolean isEmpty()2)获取字符串长度 public int length()3)截取子子串 public String substr ...
- Java _类 相关知识
成员变量 java对象的属性就是成员变量,其实成员变量就是指普通的变量,可以设置初始值,也可以不设置.当不设置时,会被设置为默认值.(当成员变量前面有private关键词时,说明定义了一个私有成员) ...
- php类相关知识----类常量,静态变量
类常量 <?php class myuser { ;//定义的常量不带$符号,常量之前没有访问修饰符,常量之前没有修饰符号 public function monolog() { echo &q ...
- Java String类相关知识梳理(含字符串常量池(String Pool)知识)
目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(S ...
- php类相关知识----抽象类
<?php //抽象类存在的目的是被继承,而不是用来被实现 abstract class wenwajiao { //抽象类中一定要有抽象方法,而且一定要被实现 abstract public ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- 04StringBuffer相关知识、Arrays类、类型互换、正则、Date相关
04StringBuffer相关知识.Arrays类.类型互换.正则.Date相关-2018.7.12 1.StringBuffer A:StringBuffer的构造方法: public Strin ...
- php有关类和对象的相关知识1
有关类和对象的相关知识 类的自动加载 类的自动加载是指,在外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类. 什么叫做“需要一个类”?通常是这样的情 ...
- 第7章 Python类型、类、协议 第7.1节 面向对象程序设计的相关知识
Python被视为一种面向对象的语言,在介绍Python类相关的内容前,本节对面向对象程序设计相关的概念进行简单介绍. 一. 类和对象(实例) 在面向对象的程序设计(OOP)过程中有两个重要概念 ...
随机推荐
- [bzoj3162]独钓寒江雪_树hash_树形dp
独钓寒江雪 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3162 题解: 首先,如果没有那个本质相同的限制这就是个傻逼题. 直接树形dp ...
- [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控
[系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...
- python 下安装pymysql数据库
两种方法来安装pymysql 方法一.利用命令来安装 安装:python37 -m pip install pymysql 升级:python37 -m pip install pymysql --u ...
- 【LOJ】#3036. 「JOISC 2019 Day3」指定城市
LOJ#3036. 「JOISC 2019 Day3」指定城市 一个点的可以dp出来 两个点也可以dp出来 后面的就是在两个点的情况下选一条最长的链加进去,用线段树维护即可 #include < ...
- error: [Errno 13] Permission denied: '/usr/local/lib/处理方法
在ubuntu系统下使用pip 命令安装包时,出现以下类似错误提示: error: [Errno 13] Permission denied: '/usr/local/lib/python2.7/di ...
- 命名规范 camel case, pascal case, hyphen
2019-11-08 refer : https://ux.stackexchange.com/questions/43174/update-vs-modify-vs-change-create-v ...
- -bash: fork: retry: 没有子进程
今天遇到一个问题 -bash: fork: retry: 没有子进程 解决方法 设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个: ulimit -u 10 ...
- Length of LOB data (190999) to be replicated exceeds configured maximum 65536. 错误修改
在上传附件时,本地是可以的但服务器上就有了文件大小的限制,不能上传.经过打断点找到这样一个错误: Length of LOB data (190999) to be replicated exceed ...
- 服务端相关知识学习(三)Zookeeper的配置
前面两篇文章介绍了Zookeeper是什么和可以干什么,那么接下来我们就实际的接触一下Zookeeper这个东西,看看具体如何使用,有个大体的感受,后面再描述某些地方的时候也能在大脑中有具体的印象.本 ...
- 异常-JDK7针对多个异常的处理方案
package cn.itcast_02; /* * JDK7出现了一个新的异常处理方案: * try{ * * }catch(异常名1 | 异常名2 | ... 变量 ) { * ... * } * ...