먼저 공식문서의 설명을 보세요
__set()는 접근 불가능한 속성에 데이터를 쓸 때 실행됩니다.
__get()은 접근 불가능한 속성에서 데이터를 읽어오는 데 활용됩니다.
정확히 무엇을 중국어로 번역하려면 어떻게 해야 하나요? 접근할 수 없음: 접근하기 어렵습니다.
코드가 있고 진실이 있습니다:
<?php
error_reporting (E_ALL);
class stu{
private $a ;
private $b =
0;
public $c ;
public $d =
0;
//这里的
private 可以用 protected public 替代
private function __get( $name )
{
return 123;
}
//这里的
private 也可以用 protected public 替代
private function __set( $name ,
$value )
{
echo "This
is set function" ;
}
}
$s =
new stu();
var_dump( $s ->a);
//output:
123
var_dump( $s ->b);
//output:
123
var_dump( $s ->c);
//output:
null
var_dump( $s ->d);
//output:
0
var_dump( $s ->e);
//output:
123
$s ->a
= 3; //output:
This is set function
$s ->c
= 3; //no
output
$s ->f
= 3; //output:
This is set function
?>
| <?php 오류 보고 (E_ALL);
class< /code> <code>stu{
비공개 $a ;< /code> <br><br><code> 비공개 $b =
0;
공개 $c ;
공개 $d =
0; <🎜> //여기
private은 protected public으로 대체될 수 있습니다. <🎜><🎜> private function __get( < 코드 >$이름)
{ <🎜><🎜> 반환 123; <🎜><🎜> } <🎜><🎜> <🎜><🎜> //여기
private은 protected public으로 대체될 수도 있습니다 <🎜><🎜> private function __set( < 코드>$이름,
$값 )
{ <🎜><🎜> 에코 "이것은
함수가 설정되었습니다." ; <🎜><🎜> } <🎜><🎜>}</code ><🎜><🎜><code>$s =
새 stu(); <🎜><🎜>var_dump( $s ->a);
//출력:
123 var_dump( $s ->b);
//출력:
123 var_dump( $s ->c);
//출력:
null var_dump( $s ->d);
//출력:
0 var_dump( $s ->e);
//출력:
123 $s ->a
= 3; //출력:
이것은 설정된 기능입니다 $s ->c
= 3; //아니요
출력 $s ->f
= 3; //출력:
설정된 기능입니다 ?>
|
결과: __get 메소드가 없는 경우 var_dump($s->a) var_dump($s->b)를 실행하면 치명적인 오류가 발생합니다 __get 메서드가 없습니다. var_dump($s->e)를 실행할 때 $e 속성이 정의되지 않았다는 알림이 표시됩니다요약:1. 액세스할 수 없는 속성에서 데이터를 읽을 때 __get () 메소드는 호출2. 액세스할 수 없는 속성에 값을 할당할 때 __set() 메소드가 호출됩니다3. 액세스할 수 없는 속성에는 (1) 비공개 속성, (2) 초기화되지 않은 속성4이 있습니다. __isset() __unset()도 비슷합니다
위 내용은 PHP 매직 메소드인 __set __get 메소드를 관련 내용을 포함하여 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.