导航:首页 > 安装方法 > php魔术方法用在哪里

php魔术方法用在哪里

发布时间:2023-06-18 14:09:04

① 详解php的魔术方法__get()和__set()使用介绍

先看看php官方文档的解释:
__set()
is
run
when
writing
data
to
inaccessible
properties.
__get()
is
utilized
for
reading
data
from
inaccessible
properties.
究竟用中文怎么翻译呢?
inaccessible
:n.
难达到;难接近;无法理解。
有代码有真相:
复制代码
代码如下:
<?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_mp($s->a);
//output:
123
var_mp($s->b);
//output:
123
var_mp($s->c);
//output:
null
var_mp($s->d);
//output:
0
var_mp($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
?>
结果分析:
如果没有__get方法,执行
var_mp($s->a)
var_mp($s->b)
会有致命的错误
如果没有__get方法,执行
var_mp($s->e)
会有一个notice,提示没有定义属性
$e
总结:
1.
从一个难以访问的属性读取数据的时候
__get()
方法被调用
2.
向一个难以访问的属性赋值的时候
__set()
方法被调用
3.
难以访问包括:(1)私有属性,(2)没有初始化的属性
4.
__isset()
__unset()
也类似

② php魔术方法。。

在 PHP 里,将所有以 __(两个下划线)开头的类方法保留为魔术方法,所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

魔术方法的引入是对面向对象编程思想的进一步实现,重载就是通过魔术方法来实现的。

PHP 魔术方法主要有:
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(),__sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等。

最常见的是__construct(), __destruct(),__get(), __set()等:

__construct和__destruct是类的构造函数和析构函数。

③ php魔术方法__tostring

__tostring()方法:在直接输出对象引用的时候,就不会产生错误,而是自动调用了__tostring()方法,输出__tostring()方法中返回的字符串

通俗来说就是 对象一般是使用print_r() 或 var_mp() 来打印访问

但对于一般闲的人来说直接 使用 echo 输出对象时,必定会报错的,原因是对象无法使用echo的。

这个时候如果想解决这个错误,咱们应该怎么操作呢?

可以很好的利用__tostring()这个魔术方法

但是切记使用__toString() 时返回值一定要使用return 来进行返回。

<?php
header("content-type:text/html;charset=utf-8");
class demo{
public $foo;
public function __construct($foo){
$this->foo=$foo;
}
//定义一个__toString()方法时,返加一个成员属性$foo
public function __toString(){
return $this->foo;
}
}
$demo=new demo('hello PHP成员');
echo $demo;

④ PHP怎么在子类用父类的魔术方法

父类的魔术方法:
function __construct()
{
echo '我是父类的构造函数(魔术方法)';

}

function __unset()
{
echo '我是父类的销毁方法(魔术方法)';

}
子类调用
function index()
{
parent::__construct();

parent::__unset();

}
输出:
我是父类的构造函数(魔术方法)
我是父类的销毁方法(魔术方法)

阅读全文

与php魔术方法用在哪里相关的资料

热点内容
假樱桃的种植方法 浏览:443
自己家存酒的正确方法 浏览:688
冬钓大鲫鱼调漂最佳方法 浏览:150
cpu的制作方法视频 浏览:648
夹鼻器使用方法 浏览:225
不可恢复式感温电缆的连接方法 浏览:323
儿童简单的画冰淇淋方法 浏览:514
哪里普及急救知识方法 浏览:749
海杆渔轮的使用方法 浏览:675
求对称轴的方法有哪些 浏览:809
腿弯疼痛检查最佳的方法是什么 浏览:696
紫苏的食用方法 浏览:964
新冠病毒核酸检测用什么方法 浏览:752
用热水洗衣服的正确方法技巧 浏览:852
监控头连接方法 浏览:578
冬瓜如何腌制的方法 浏览:787
分线路由器安装方法 浏览:950
行李箱缝制方法视频 浏览:935
托福阅读成绩计算方法 浏览:50
养碳炉的使用方法 浏览:411