<?php
#doc
# classname: test_class
# scope: PUBLIC
#
#/doc
class test_class
{
private $name;
public $name2;
private $age;
function __construct($name = 'test', $name2 = 'test', $age = 0)
{
$this->name = $name;
$this->name2 = $name2;
$this->age = $age;
}
function __get($value)
{
echo "__get call <br />";
//
$vars = array('name2', 'name', 'age');
if(in_array($value, $vars))
{
return $this->$value."<br />";
}
else
{
return "Not such value <br />";
}
}
}
$kk = new test_class('deng', 'deng2', 24);
//name2是public,外部可以直接通过类名读取,如果name2存在,将直接输出name2的值,并不会通过__get()函数。
echo $kk->name2;
//为了区分,此处输出一个换行。
echo "<br />";
//name和age是private,外部不可以直接访问,以下种方法访问将会自动调用__get()函数
PHP 类__get函数实验
最新推荐文章于 2021-04-04 15:16:35 发布
本文通过一个实例展示了PHP中魔术方法__get()的使用。实验包括四种情况:直接访问类属性、通过__get()访问已定义的属性、访问未定义但已赋值的属性以及尝试访问不存在的属性。实验结果显示了__get()在处理不存在属性时的行为。
摘要由CSDN通过智能技术生成