当前位置:首页 > php技术文章 > 浅谈PHP拦截器之__set()与__get()的理解与使用方法

PHP拦截器__set()与__get()的实例用法

  • 发布时间:
  • 作者:码农之家原创
  • 点击:63

这篇文章主要知识点是关于php中set和get方法、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP+MySQL程序设计及项目开发
  • 类型:PHP+MySQL大小:105.1MB格式:PDF作者:郑广成,朱翠苗
立即下载

浅谈PHP拦截器之__set()与__get()的理解与使用方法

“一般来说,总是把类的属性定义为private,这更符合现实的逻辑。

但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性,以及检查属性的“__isset()”和删除属性的方法“__unset()”。

我们为每个属性做了设置和获取的方法,在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一样,类里面添加了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加:“

<?php
//拦截器的使用
class Computer{
private $name;
private $price;
private $cpu;
private $clocked;

//拦截器之赋值
public function __set($key,$value){
//那么:$key=name $value="联想" 则有: $this->name="联想"
return $this->$key=$value;
}

//拦截器之取值
public function __get($key){
if (isset($key)){
//那么: $key=name 则$this->name 所以自然就return了"联想"
return $this->$key;
}else {
return NULL;
}
}
}
//正是因为的拦截器存在,才能如此用
$computer=new Computer();
$computer->name="联想";
$computer->price=5600;
$computer->cpu="八核";
$computer->clocked="1600hz";

echo $computer->name;
echo $computer->price;
echo $computer->cpu;
echo $computer->clocked;

以上就是小编为大家带来的浅谈PHP拦截器之__set()与__get()的理解与使用方法全部内容了,希望大家多多支持码农之家~

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

vue+iview 实现可编辑表格的实例

蚂蚁金服:从支付宝到新金融生态圈

MySQL8 Cookbook(中文版)

用户体验:引爆商业竞争力的新法则

AutoCAD2017快速入门、进阶与精通

展开 +

收起 -

PHP 相关电子书
学习笔记
网友NO.137397

php reset() 函数指针指向数组中的第一个元素并输出实例代码

reset函数将数组的内部指针指向第一个单元,并输出该数组。 基本语法 reset(array) reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值。 参数介绍: 参数 描述 array 必需。规定要使用的数组。 返回值 返回数组第一个单元的值,如果数组为空则返回 FALSE。 实例 ?php$array = array('step one', 'step two', 'step three', 'step four');// 数组默认指针指向第一个元素echo current($array)."br /"; // 将指针指向下一个元素next($array);next($array);echo current($array)."br /"; // 将指针指向重新指向第一个元素reset($array);echo current($array)."br /"; ? 运行结果: step one step three step one 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! ……

网友NO.839678

PHP中的empty、isset、isnull的区别与使用实例

做php开发时候,通常会用到 empty , isset , is_null 这几个函数,使用不当的话甚至给自己的程序带来一些安全隐患的bug。很多时候,对于isset,empty都认为差不多。因此开发时候,就没有注意,一段作为流程判断时候,就出现bug问题了。下面我们分别介绍一下这三个函数的区别和使用。 empty 如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0″、NULL、FALSE、array()、var $var、未定义;以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。 代码示例: $a = 0;$b = '';$c = array();if (empty($a)) echo '$a 为空' . "";if (empty($b)) echo '$b 为空' . "";if (empty($c)) echo '$c 为空' . "";if (empty($d)) echo '$d 为空' . "";// 以上输出皆为空 isset 如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量……

网友NO.478100

PHP中set_include_path()函数相关用法分析

本文实例讲述了PHP中set_include_path()函数相关用法。分享给大家供大家参考,具体如下: 先看如下代码: ?php/** 定义根目录 */define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));/** 定义插件目录(相对路径) */define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');/** 设置包含路径 */@set_include_path(get_include_path() . PATH_SEPARATOR .__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);? 首先: 我们来看这个全局变量:__FILE__ 它表示文件的完整路径(当然包括文件名在内) 也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径; 然后: 我们看这个函数: string dirname ( string path ) 它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,例如: 假如你的首页中用到了_FILE_这个变量: (假设你的网页……

网友NO.259120

PHP中__set()实例用法和基础讲解

PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 其中__set(),设置一个类的成员变量时调用 __set() 的作用: __set( $property, $value )` 方法用来设置私有属性, 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值。 请看下面的演示代码: ?phpclass Person{ private $name; private $age; public function __construct($name="", $age=25) { $this-name = $name; $this-age = $age; } /** * 声明魔术方法需要两个参数,真接为私有属性赋值时自动调用,并可以屏蔽一些非法赋值 * @param $property * @param $value */ public function __set($property, $value) { if ($property=="age") { if ($value 150 || $value 0) { return; } } $this-$property = $value; } /** * 在类中声明说话的方法,将所有的私有属性说出 */ public function say(){ echo "我叫".$this-name.",今年".$this-age."岁了……

网友NO.907006

php中isset与empty函数的困惑与用法分析

本文实例讲述了php中isset与empty函数的困惑与用法。分享给大家供大家参考,具体如下: 在学习php有一段时间之后,感觉自己的基础知识还是有点不牢固,有的问题就不怎么知道,比如就有一个,在判断一个变量是否为空的情况下,我就不知道是用 isset() 还是 empty() 。今天我就来分析该用哪个函数。 isset() :用于判断一个函数是否被设置过,如果设置过就为true,否则就为false,但是有一个例外,就是如果一个变量被设置成 null 的话,此时也会返回的也是 false 。 ?php $a = null; var_dump(isset($a));//a变量已赋值,但是被设置成null,故返回false var_dump(isset($b));//内存中不存在变量b,故返回false var_dump(isset($_GET['id']));//如果$_GET['id']变量不存在,则返回false;如果$_GET['id']存在,则返回true? empty() :用于判断一个变量是否为空,如果是整形的0,浮点型的0.0,字符型的' ‘……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757