マジックメソッド__set()

__set()アクション:

 

__set():アクセス不能なプロパティの割り当てに(私的には、保護され、存在しない)場合は、PHPは__set()メソッドを実行します。大理石の修理工場の機械メンバー

アクセス不能なプロパティの割り当てに(私的には、保護され、存在しない)場合は、PHPは__set()メソッドを実行します。我々は__set()の役割があると述べた上で

これは、どのようなこの手段です。例えば、我々はまだ上記の例の例でした。私たちは、猿のバナナに桃を食べるのが好き、しかし、キーワードの前に$食べ物が保護されているの規則に従って
、直接アクセスすることはできませんが、我々は$食べ物を割り当てる必要があり、我々はそれがどのように行うことができますか?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<?php

class Monkey{

public $name;

protected $food;

function __construct($name,$food){

$this->name = $name;

$this->food = $food;

}

function sayHello(){

echo '<br/>我是' . $this->name . '我喜欢吃' . $this->food;

}

//魔术方法

function __get($pro_name){

//先判断$pro_name是否存在

if(isset($this -> $pro_name)){

return $this -> $pro_name;

}else{

echo '属性值不存在';

}

}

function __set($pro_name,$value){

//先判断$pro_name是否存在

if(isset($this -> $pro_name)){

return $this -> $pro_name = $value;

}else{

echo '属性值不存在';

}

$monkey = new Monkey('猴子' , '桃子')

$monkey -> sayHello();

echo '猴子喜欢吃' . $monkey -> food;

$monkey -> food = '香蕉';

echo '<br/>';

$monkey -> sayHello();

私たちの$食品が保護されているので、アクセスを許可していません。そこで、我々は__set()マジック・メソッドを助けます。__set()メソッドは、変数名と変数値、それぞれ、2つのパラメータを含む、2つのパラメータは省略することができません。https://www.bzddrive.com/zxmzcj/1294.html

おすすめ

転載: www.cnblogs.com/furuihua/p/12167670.html