PHP常用魔术方法(__set、__get魔术方法:)
__set、__get魔术方法:
//文件名:Object.php
<?php
namespace IMooc;
class Object
{
protected $array = array();
function __set($name, $value)//set魔术方法
{
var_dump(__METHOD__);//输出当前方法 $this->array[$name]=$value;//$name=title,$value="哎哟喂"
}
function __get($name)//get魔术方法
{
var_dump(__METHOD__);//输出当前方法
return $this->array[$name];
}
}
//文件名:index.php
<?php define('a',__DIR__);
include '/IMooc/Loader.php';
spl_autoload_register('\\IMooc\\Loader::autoload'); $Object = new \IMooc\Object(); $Object->title="哎哟喂";//当对不存在属性进行赋值时,它会调用__set魔术方法 echo $Object->title;//当读取对象不存在属性时,会调用__get魔术方法
/*输出:
string(19) "IMooc\Object::__set"
string(19) "IMooc\Object::__get"
哎哟喂
*/
PHP常用魔术方法(__set、__get魔术方法:)的更多相关文章
- PHP的魔法方法__set() __get()
php的魔法方法__set()与__get() Tags: PHP 我们先来看看官方的文档如何定义他们的: public void __set(string $name, mixed $value); ...
- __set(),__get() 魔术方法示例
<?php class Ren{private $name;private $age;private $sex;function __set($name,$value){ if($name == ...
- php之魔术方法 __set(),__get(),__isset(),__unset()
__set()与__get() 当一个类里面,属性被设置为私有属性时,这个属性是不能在外部被访问的.那么当我们又想在外部访问时该怎么办呢,我们可以用方法来实现.举例如下: 1 class Test 2 ...
- PHP 魔术方法__set() __get() 方法
a); //output: 123 var_dump($s->b); //output: 123 var_dump($s->c); //output: null var_dump($s-& ...
- php魔术方法__SET __GET
__SET 设置一个不可访问的属性的时候 调用_set方法 __GET 获取一个不可访问的属性的时候 调用_get 方法 <?php class stu{ private $a; priva ...
- PHP 魔术方法__set() __get() 方法详解
__set() is run when writing data to inaccessible properties. __get() is utilized for reading data fr ...
- PHP面向对象魔术方法之__get 和 __set函数
l 基本的介绍 (1) 当我们去使用不可以访问的属性时,系统就会调用__get方法. (2) 不可以访问的属性指的是(1 . 该属性不存在 2. 直接访问了protected或者private属性) ...
- __set()与__get() 魔术方法
在面向对象编程的过程中,对于类当中的各个成员变量,都有不同的访问属性,比如公有的(public)属性,在类内部和类外部都可直接调用:而私有的(private)和受保护的(protected),在类外不 ...
- 巧用PHP中__get()魔术方法
PHP中的魔术方法有很多,这些魔术方法可以让PHP脚本在某些特定的情况下自动调用.比如 __construct() 每次实例化一个类都会先调用该方法进行初始化.这里我们讲一下__get() 魔术方法的 ...
随机推荐
- JS(四)
JS的属性好多,方法好多,一下子塞进来真的需要时间消化,很多东西都是当时记得很清楚,但忘得很快,看来需要经常去复习,主要是感觉后面一点的练习题好像少了点,所以就显得不是很熟练. 1.About Tim ...
- hibernate 一对多操作(级联操作)
一对多级联操作 1. 级联保存 复杂写法 Company company = new Company(); company.setcName("Hello"); company. ...
- lesson5:Condition的原理分析及demo展示
Condition 将 Object 监视器方法(wait,notify,和notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待 set(wa ...
- 浅析NSTimer & CADisplayLink内存泄露
偶得前言 NSRunLoop与定时器 - invalidate的作用 我们如何解决? 偶得前言 本篇文章中我们主要谈谈NSTimer\CADisplayLink在使用过程中牵扯到内存泄露的相关问题及解 ...
- @property属性关键字
关于@property属性关键字使用注意:* weak(assign) : 代理\UI控件* strong(retain) : 其他对象(除代理\UI控件\字符串以外的对象)* copy : 字符串 ...
- 控制uibutton的title范围
moreBtn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 10);
- [C/C++标准库]_[0基础]_[交集和补集]
场景: 1. 计算std::vector A和 std::vector B里的同样的元素, 用于保留不删除. 2. 计算std::vector A和 std::vector B里各自的补集, 用于删除 ...
- Android RatingBar自定义替换系统图片
1.自定义替换提醒☆图片,准备两个图片添加到系统中去:如下: 在drewable下定义一个图片资源ratingbar_drawable.xml 1 2 3 4 5 6 7 8 9 10 ...
- mysql 的密码重置
Windows: 1.以系统管理员登陆: 2.停止MySQL服务: 3.进入CMD,进入MySQL的安装目录,假设是D:/MySQL/MySQL Server 5.0/: 4.跳过权限检查启动MySQ ...
- Js遍历Josn对象(内容对比页实现思路)
更好的遍历Josn的方法,利用jquery的each方法: var arr1 = [ "one", "two", "three", &quo ...