php中国get和set区别,php get和set要领怎样运用_后端开发

php get和set要领的运用:1、【get()】要领用来猎取私有成员属性值的,有一个参数,参数传入要猎取的成员属性的称号,返回猎取的属性值;2、【set()】要领用来为私有成员属性设置值的,有两个参数。

ebb4edbb41699c136cde9b4c6aba3d54.png

【相干进修引荐:php图文教程】

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,经由过程这个要领的实行,到达赋值的目标。假如成员属性不封装成私有的,对象自身就不会去自动挪用这个要领。为了不传入不法的值,还能够在这个要领给做一下推断。代码以下:

代码以下:

class Person

{

//下面是人的成员属性,都是封装的私有成员

private $name; //人的名子

private $sex; //人的性别

private $age; //人的岁数

//__get()要领用来猎取私有属性

private function __get($property_name)

{

echo "在直接猎取私有属性值的时刻,自动挪用了这个__get()要领
";

if(isset($this->$property_name))

{

return($this->$property_name);

}

else

{

return(NULL);

}

}

//__set()要领用来设置私有属性

private function __set($property_name, $value)

{

echo "在直接设置私有属性值的时刻,自动挪用了这个__set()要领为私有属性赋值
";

$this->$property_name = $value;

}

}

$p1=newPerson();

//直接为私有属性赋值的操纵,会自动挪用__set()要领举行赋值

$p1->name="张三";

$p1->sex="男";

$p1->age=20;

//直接猎取私有属性的值,会自动挪用__get()要领,返回成员属性的值

echo "姓名:".$p1->name."
";

echo "性别:".$p1->sex."
";

echo "岁数:".$p1->age."
";

?>

程序实行效果:

在直接设置私有属性值的时刻,自动挪用了这个__set()要领为私有属性赋值

在直接设置私有属性值的时刻,自动挪用了这个__set()要领为私有属性赋值

在直接设置私有属性值的时刻,自动挪用了这个__set()要领为私有属性赋值

在直接猎取私有属性值的时刻,自动挪用了这个__get()要领

姓名:张三

在直接猎取私有属性值的时刻,自动挪用了这个__get()要领

性别:男

在直接猎取私有属性值的时刻,自动挪用了这个__get()要领

岁数:20

以上代码假如不加上__get()和__set()要领,程序就会失足,由于不能在类的外部操纵私有成员,而上面的代码是经由过程自动挪用__get()和__set()要领来协助我们直接存取封装的私有成员的。

相干进修引荐:php编程(视频)

以上就是php get和set要领怎样运用的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值