php5中常用的魔术方法(php中怎么用get)

2024-03-12 22:20:08 24

php5中常用的魔术方法(php中怎么用get)

本文目录

php中怎么用get

php面向对象_get(),_set()的用法一般来说,总是把类的属性定义为private,这更符合现实的逻辑。但是,对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数“__get()”和“__set()”来获取和赋值其属性。类似于java中的javabean的操作,使用的方法也类似,只是不需要像javabean中那样,对每个字段进行set和get的操作。只需要加上两个魔术方法即可。即私有成员的设值和取值的操作。在PHP5中给我们提供了专门为属性设置值和获取值的方法,“__set()”和“__get()”这两个方法,这两个方法不是默认存在的,而是我们手工添加到类里面去的,像构造方法(__construct())一此销样,类里面添加了才会存在,可以按下面的方式来添加这两个方法,当然也可以按个人的风格来添加://__set()方法用来设置私有属性public function __set($name,$value){ $this-》$name = $value; } //__get()方法用来获取私有属性 public function __get($name){ return $this-》$name; }__get()方法:这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法穗哪不用我们手工的去调用,因为我们也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。因为私有属性已经被封装上了,是不能直接获取值的,但是如果你在类里面加上了这个方法,在使用“echo$p1-》name”这样的语句直接获取值的时候就会自动调用__get($name)方法,将属性name传给参数$name,通过这个方法的内部执行,返回我们传入的私有属性的值。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。__set()方法:这个方法用来为私有成员属性设置值的,有两个参数,第一个参数为你要为设置值的属性名,第二个参数是要给属性设置的值,没有返回值。这个方法同样不用我们手工去调用,它也可以做成私有的,是在直接设置私有属性值的时候自动调用的,同样属性私有的已经被封装上了,如果没有__set()这个方法,是不允许的,比如:$this-》name=‘zhangsan’,这样会出错,但是如果你在类里面加上了__set($property_name, $value)这个方法,在直接给私有属性赋值的时候,就会自动调用它,把属性比如name传给$property_name,把要赋的值“zhangsan”传给$value,通过这个方法的执行,达到赋值的猜扒码目的。如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。为了不传入非法的值,还可以在这个方法给做一下判断。代码如下:《?phpclassPerson{//下面是人的成员属性,都是封装的私有成员private $name; //人的名子private $sex; //人的性别private $age; //人的年龄//__get()方法用来获取私有属性private function__get($property_name){echo"在直接获取私有属性值的时候,自动调用了这个__get()方法《br》";if(isset($this-》$property_name)){return($this-》$property_name);}else{return(NULL);}}//__set()方法用来设置私有属性private function__set($property_name,$value){echo"在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值《br》";$this-》$property_name= $value;}}$p1=newPerson();//直接为私有属性赋值的操作,会自动调用__set()方法进行赋值$p1-》name="张三";$p1-》sex="男";$p1-》age=20;//直接获取私有属性的值,会自动调用__get()方法,返回成员属性的值echo "姓名:".$p1-》name."《br》";echo"性别:".$p1-》sex."《br》";echo"年龄:".$p1-》age."《br》";?》程序执行结果:在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值在直接获取私有属性值的时候,自动调用了这个__get()方法姓名:张三在直接获取私有属性值的时候,自动调用了这个__get()方法性别:男在直接获取私有属性值的时候,自动调用了这个__get()方法年龄:20以上代码如果不加上__get()和__set()方法,程序就会出错,因为不能在类的外部操作私有成员,而上面的代码是通过自动调用__get()和__set()方法来帮助我们直接存取封装的私有成员的。

如何使用PHP5中的Clone函数

面向对象的魔术方法__clone  克隆对象

对一个对象实例进行的浅复制,对象内的基本数值类型进行的是传值复制,而对象内的对象型成员变量,如果不重写__clone方法,显式的clone这个对象成员变量的话,这个成员变量就是传引用复制,而不是生成一个新的对象.如第28行注释所说

 1  《?php 2     class Account { 3         public $balance; 4          5         public function __construct($balance) { 6             $this-》balance = $balance; 7         } 8     } 9  10     class Person {11         private $id;12         private $name;13         private $age;14         public $account;15         16         public function __construct($name, $age, Account $account) {17             $this-》name = $name;18             $this-》age = $age;19             $this-》account = $account;20         }21         22         public function setId($id) {23             $this-》id = $id;24         }25         26         public function __clone() {    #复制方法,可在里面定义再clone是进行的操作27             $this-》id = 0;28             $this-》account = clone $this-》account;    #不加这一句,account在clone是会只被复制引用,其中一个account的balance被修改另一个也同样会被修改29         }30     }31     32     $person = new Person("peter", 15, new Account(1000));33     $person-》setId(1);34     $person2 = clone $person;35     36     $person2-》account-》balance = 250;37     38     var_dump($person, $person2);39     40  ?》

$person和$person2的结果分别为:

 

object(Person)#1 (4) { =》 int(1) =》 string(5) "peter" =》 object(Account)#2 (1) { =》 int(1000) } } object(Person)#3 (4) { =》 string(5) "peter" =》 object(Account)#4 (1) { =》 int(250) } }

PHP:对象->变量名可以访问类中的变量,如果访问的变量被private修饰,怎么不报错呢

  1. 在PHP5中,“__set()”和“__get()”这两个方法,专门为私有属性设置值和获取值的方法,如果是public属性的话,不用这两个函数可以访问属性;

  2. 这两个魔法函数可以这么理解,就是外面访问 $oo-》type=’DIY’;的type只是一个名字,传递到类,类里面的一个方法给类的私有属性赋值,而不是在类外面直接赋值,传递到类里面的方法进行赋值;

  3. 这两个方法不是默认存在的,而是我们手工添加到类里面去的,才能对类添加属性和获取属性。

谁能用比较通俗的语言解释一下php类中的构造函数,他的作用以及为什么会存在

从php5以后的版本,php的类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法。PHP中的魔术方法有 :__construct,__destruct,__get, __set等__get、__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的。__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没有权限访问的属性)。 在php语言中,类构造器有两种方法,一种是使用__construct,另一种是使用与类同名的方法。__construct 构造方法,当一个对象创建时调用此方法,相对于PHP4使用此方法的好处是:可以使构造方法有一个独一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造方法的名称。

php5中常用的魔术方法(php中怎么用get)

本文编辑:admin

更多文章:


dell1014(dell1014笔记本参数)

dell1014(dell1014笔记本参数)

dell1014笔记本参数好的,关于“dell1014笔记本参数”的相关内容,以下是详细解释:首先,要明确一点,目前戴尔(Dell)并没有直接命名为“dell1014”的笔记本电脑型号。但是,假设这是一个具体的型号或系列的错误或缩写,下面是

2024年7月11日 12:29

联想笔记本v480(联想笔记本v480拆机教程)

联想笔记本v480(联想笔记本v480拆机教程)

联想笔记本v480拆机教程好的,下面将通过一个条理清晰的方式解释有关“联想笔记本V480拆机教程”的相关内容。一、准备工具和材料在开始拆机之前,需要准备一些必要的工具和材料。一般需要的工具有:小型螺丝刀套装(用于拆卸螺丝)、塑料撬棒(用于撬

2024年7月14日 23:56

成都电脑(成都电脑城)

成都电脑(成都电脑城)

成都电脑城“成都电脑城”是位于中国四川省成都市的一家电子产品市场和购物中心,是当地以及西南地区电脑及其相关产品的销售和贸易中心。以下是关于成都电脑城的相关内容解释:1. 位置:成都电脑城通常位于成都市的核心地带,交通便利,方便顾客前来购物。

2024年7月24日 17:16

联想lenovo(联想lenovo官方网站)

联想lenovo(联想lenovo官方网站)

联想lenovo官方网站“联想Lenovo官方网站”相关内容条理明确的解释如下:1. 网站定义: - 联想Lenovo官方网站是联想公司的官方在线平台。该网站提供有关联想产品的详细信息,以及购买、支持和服务的途径。2. 网站功能:

2024年7月17日 12:41

东芝(东芝被谁收到购了)

东芝(东芝被谁收到购了)

东芝被谁收到购了“东芝被谁收购了”的相关内容如下:1. 收购方:东芝被日本产业投资者收购。2. 收购背景:东芝是一家全球知名的电子产品和解决方案公司,但近年来面临财务困境和业绩下滑。为了改善经营状况,东芝决定进行公司重组和出售部分业务。3.

2024年7月25日 04:25

intel pm45(intel pm45最大内存)

intel pm45(intel pm45最大内存)

intel pm45最大内存好的,关于“Intel PM45最大内存”的详细解释如下:1. Intel PM45:这指的是Intel公司生产的一款芯片组,主要应用于笔记本电脑等设备中。2. 最大内存:指的是该芯片组所支持的内存大小的最大值。

2024年7月25日 14:50

联想笔记本保修(联想笔记本保修期几年)

联想笔记本保修(联想笔记本保修期几年)

联想笔记本保修期几年关于“联想笔记本保修期几年”的相关内容,以下是对此问题的条理清晰的解释:1. 保修期时长:联想笔记本的保修期通常为一年,但这主要依据不同地区及具体产品而有所差异。例如在中国大陆地区,大多数联想笔记本产品享有至少一年的保修

2024年7月24日 11:50

thinkpad sl400驱动(thinkpad s系列驱动)

thinkpad sl400驱动(thinkpad s系列驱动)

thinkpad s系列驱动关于ThinkPad S系列驱动的相关内容,以下是一些条理清晰的解释:一、概述ThinkPad S系列驱动是指针对联想ThinkPad S系列笔记本电脑所开发的一系列驱动程序。这些驱动程序是连接计算机硬件和操作系

2024年7月24日 09:31

14寸笔记本电脑推荐(14寸笔记本电脑推荐2024)

14寸笔记本电脑推荐(14寸笔记本电脑推荐2024)

14寸笔记本电脑推荐2024关于“14寸笔记本电脑推荐2024”的相关内容,以下是一些详细的解释和推荐:一、什么是14寸笔记本电脑?14寸笔记本电脑是指屏幕对角线长度为14英寸的笔记本电脑。其具有适中的尺寸,既不像小型笔记本电脑那样局限于较

2024年7月22日 11:14

笔记本屏幕贴膜(笔记本屏幕贴膜好不好)

笔记本屏幕贴膜(笔记本屏幕贴膜好不好)

笔记本屏幕贴膜好不好关于笔记本屏幕贴膜好不好,这取决于个人的使用习惯和需求。以下是对此问题的详细解释:1. 保护屏幕:贴膜可以有效地防止屏幕被划伤或受到物理损伤。如果经常在不太理想的环境下使用笔记本,或者在笔记本上做一些需要用到尖锐工具的工

2024年7月25日 00:36

戴尔笔记本型号大全(戴尔笔记本型号大全介绍)

戴尔笔记本型号大全(戴尔笔记本型号大全介绍)

戴尔笔记本型号大全介绍关于“戴尔笔记本型号大全介绍”的相关内容,以下是一些主要型号及其特点的简要介绍:1. 戴尔XPS系列:该系列是戴尔的高端产品线,以超薄的机身、出色的显示效果和强大的性能而闻名。XPS系列通常采用金属材质,外观时尚,适合

2024年7月13日 05:31

联想旭日c467(联想旭日c467a升级)

联想旭日c467(联想旭日c467a升级)

联想旭日c467a升级关于“联想旭日C467A升级”的相关内容,条理明确的解释如下:一、概述联想旭日C467A是一款笔记本电脑,升级主要是指对电脑硬件、系统或软件的改进和增强。合理的升级能够提高笔记本的性能和满足更多用户的使用需求。二、可升

2024年7月19日 00:59

联想笔记本驱动(联想笔记本驱动官网)

联想笔记本驱动(联想笔记本驱动官网)

联想笔记本驱动官网联想笔记本驱动官网是与联想笔记本硬件设备驱动程序相关的一个官方网站。下面是对“联想笔记本驱动官网”的相关内容的条理化解释:一、基本概念1. 官网定义:联想笔记本驱动官网是联想公司为了提供用户设备驱动程序而开设的官方网站。2

2024年7月10日 09:26

联想y470ise(联想Y470配置参数)

联想y470ise(联想Y470配置参数)

联想Y470配置参数联想Y470是一款笔记本电脑,其配置参数如下:1. 处理器:联想Y470通常搭载的是英特尔的处理器,具体型号可能因产品版本而异,但常见的有i3、i5、i7等。这些型号代表着不同的计算能力。2. 内存:其内存大小一般会有多

2024年7月15日 09:53

配置最高的笔记本(配置最高的笔记本电脑是哪一款)

配置最高的笔记本(配置最高的笔记本电脑是哪一款)

配置最高的笔记本电脑是哪一款关于“配置最高的笔记本电脑是哪一款”的问题,由于笔记本电脑的配置会随着时间、技术进步和市场需求的变化而不断更新和变化,因此很难给出一个确切的答案。不过,我可以为你提供一些关于如何查找和评估笔记本电脑配置的一般性建

2024年7月15日 06:57

三星r467(三星r467笔记本配置)

三星r467(三星r467笔记本配置)

三星r467笔记本配置“三星R467笔记本配置”是指三星公司生产的一款笔记本电脑的硬件配置。以下是对其配置的条理清晰的解释:1. 处理器(CPU):这通常是笔记本电脑性能的核心部分。三星R467笔记本的CPU配置可能会因不同版本而异,但通常

2024年7月27日 18:06

dell r710(dellr710做raid)

dell r710(dellr710做raid)

dellr710做raid“dellr710做raid”是指戴尔R710服务器配置RAID(冗余阵列)的过程。RAID是一种数据存储技术,用于将多个物理磁盘(如硬盘)组合成一个逻辑磁盘,以提高数据存储的可靠性、性能和容量。下面将详细解释有关

2024年7月18日 16:11

苏州华硕(苏州华硕电子厂)

苏州华硕(苏州华硕电子厂)

苏州华硕电子厂苏州华硕电子厂是一家知名的电子制造企业,以下是关于“苏州华硕电子厂”的相关内容:1. 公司背景:苏州华硕电子厂是华硕集团的一部分,该集团是一家全球领先的计算机硬件和消费电子产品制造商。华硕电子厂主要生产和制造电子设备及零部件。

2024年7月23日 17:36

华硕笔记本官网驱动下载(华硕笔记本官网驱动下载专区)

华硕笔记本官网驱动下载(华硕笔记本官网驱动下载专区)

华硕笔记本官网驱动下载专区华硕笔记本官网驱动下载专区是一个提供给用户下载官方驱动程序的平台,这些驱动程序对于保障笔记本硬件设备的正常运行至关重要。以下关于“华硕笔记本官网驱动下载专区”的详细解释:一、概念及功能华硕笔记本官网驱动下载专区,是

2024年7月18日 17:26

上门电脑维修服务(上门电脑维修服务电话)

上门电脑维修服务(上门电脑维修服务电话)

上门电脑维修服务电话关于“上门电脑维修服务电话”的相关内容,条理如下:一、什么是上门电脑维修服务电话?上门电脑维修服务电话,是一种服务方式。用户在使用电脑过程中遇到问题,可以通过拨打特定电话号码来获得维修服务。服务商在接到电话后,会派遣专业

2024年7月15日 21:46

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索