PHP常用魔术方法(__set、__get魔术方法:)

__set、__get魔术方法:


//文件名:Object.php
<?phpnamespace 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"    哎哟喂*/
时间: 2024-10-13 11:05:27

PHP常用魔术方法(__set、__get魔术方法:)的相关文章

__set(),__get() 魔术方法示例

<?php class Ren{private $name;private $age;private $sex;function __set($name,$value){ if($name == "age") { if($value < 50 && $value > 10) { $this->$name = $value; } } else { $this->$name = $value; }}function __get($name){

php魔术方法__SET __GET

__SET  设置一个不可访问的属性的时候 调用_set方法 __GET 获取一个不可访问的属性的时候  调用_get 方法 <?php class stu{ private $a; private $b = 0; public $c; public $d = 0; //这里的 private 可以用 protected public 替代 private function __get($name) { return 123; } //这里的 private 也可以用 protected pub

PHP面向对象魔术方法之__get 和 __set函数

l 基本的介绍 (1) 当我们去使用不可以访问的属性时,系统就会调用__get方法. (2) 不可以访问的属性指的是(1 . 该属性不存在 2. 直接访问了protected或者private属性) (3) 当程序员去给不可以访问的属性直接赋值,系统就会调用__set方法 l 举例说明 需求是: 如果对象有一个成员变量是private.protectd的,我希望在在类的外部通过 : $对象名->变量名的方式来赋值和取值,怎么办? 代码如下 <?php header('content-type:

__set()与__get() 魔术方法

在面向对象编程的过程中,对于类当中的各个成员变量,都有不同的访问属性,比如公有的(public)属性,在类内部和类外部都可直接调用:而私有的(private)和受保护的(protected),在类外不能直接赋值和使用,必须通过在类当中定义成员函数对该属性的成员变量进行操作,今天要提的__set()和__get()魔术方法就是针对私有成员进行赋值和获取值操作. 具体的方法可以参考下面的示例代码: 首先,不用魔术方法进行操作,直接定义函数: <!DOCTYPE html> <html>

php __set() __get() __isset() __unset()四个方法的应用

_set() __get() __isset() __unset()四个方法的应用 一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是,对属性的读取 和赋值操作是非常频繁的,因此在PHP5 中,预定义了两个函数“__get()”和“__set()”来获 取和赋值其属性,以及检查属性的“__isset()”和删除属性的方法“__unset()”. 上一节中,我们为每个属性做了设置和获取的方法,在PHP5 中给我们提供了专门为属 性设置值和获取值的方法,“__set()”和“__

SecureCRT学习之道:SecureCRT常用快捷键设置与字体设置方法

常用快捷键: 全屏View->Full Screen 快捷键 Alt + Enter 菜单View 快捷键 Alt + V 打开新的终端 快捷键 Alt + B 字体设置: options->global options->general->Default session-> Edit Defalut Settings 网上有人建议用fixedsys,这个字体虽然不是最美丽的,但在终端上也是一个不错选择,大家都可以接受. 选择它,主要是因为它大小固定,在所有地方显示,效果都一

不常用的寻找dom节点的方法

有关表格的两个对象获取方式 var tab = document.getElementById(“tab1”)          ;        //假设tab1是一个table的id,则: var allRow = tab.rows;    //代表tab的所有行, 也是一个集合,也可以使用tab.getElementsByTagName("tr") var oneRow = allRow[0]; //表示tab中的第一行(第一个tr) var allTd = oneRow.cel

产品经理常用的四种需求收集方法简述

A 客户访谈 客户访谈是通过面对面的交流方式了解具体客户对产品.对流程的需求.观点和看法. 客户访谈的内容可以包括: 1.了解哪些需求对客户比较重要. 2.就了解到的一些需求请客户协助进行优先排序. 3.就问题改进建议的初步想法与客户进行讨论,确认是否能够满足客户需求. 客户访谈的优点包括: 1.由于是面对面的交流,因此在调查内容上更加灵活,可以随时根据问答状况就一些内容进行深入讨论,获得更多的客户感受. 2.客户可以再调查人的协助下,进行一些较为复杂的问卷调查. 3.客户访谈方式的适用面广,可

.NET中常用的几种解析JSON方法

一.基本概念 json是什么? JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是一种轻量级的数据交换格式,是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. 序列化和反序列化是怎么回事? 序列化: 将数据结构或对象转换成二进制串的过程 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程 如何:对 JSON 数据进行序列化和反序列化? 1.定义 Person 的数据协定 通过