- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP中常用的魔术方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我们在PHP中经常用到魔术方法,像构造方法,析构方法等等魔术变量,下面总结一下一些常用的魔术变量:
__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic,
1,__constuct()构造函数 。
通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动的调用一个名字叫作__construct()的方法,我们把这个方法叫作“构造方法”! 。
其中,构造方法可以没有参数! 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
class
Stu {
public
$stu_name
;
public
$stu_age
;
//构造方法,实例化时自动调用
public
function
__construct(
$name
,
$age
){
$this
->stu_name =
$name
;
$this
->stu_age =
$age
;
}
}
//实例化stu对象
$stu
=
new
Stu(
'孙悟空'
,
'500'
);
|
2.__destruct()析构方法 。
与构造方法是一对,构造方法是在一个对象“出生”的时候由系统自动调用的,而析构方法是在一个对象“消失”的时候由系统自动调用的! 。
析构方法的名字叫__destruct();注意里面不能有任何的参数! 。
1
2
3
4
5
6
7
|
<?php
//析构方法
public
function
__destruct(){
}
?>
|
注意:析构方法是在对象销毁之前调用的! 。
作用:
析构方法的作用一般是用来释放该对象所占用的额外的资源,而不是销毁该对象本身! 。
3,__clone()克隆 。
触发时机:是在克隆一个对象的时候,对新对象进行初始化的工作 。
1
2
3
4
5
6
|
//克隆方法在克隆对象的时候对新对象的初始化工作
public
function
__clone(){
$this
->is_clone=true;
}
|
思考:
克隆出来的对象还是不是Student类中的一个实例呢?
我们可以利用instanceof运算符来进行判断! 。
instanceof就是用来判断某个对象是否是某个类的一个实例! 。
需要两个操作数,前面是一个对象变量,后面是一个类名!返回一个布尔值! 。
var_dump($stu instanceof Stu); //返回bool(true) 。
4.__autoload()自动加载类 。
当调用不存在的类的时候自动调用! 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
/**
* 自动加载类
* 需要什么类__autoload会自动调用需要的文件
*
*/
public
function
__autoload(
$class_name
)
{
require_once
"../Model/{$class_name}.class.php"
;
}
?>
|
5.__tostring() 。
当将对象当成字符串使用的时候自动调用 。
6.__invoke() 。
当将对象当成函数使用的时候自动调用 。
7,__set() 。
当对无法访问的属性赋值时自动调用(比如:类外调用私有属性) 。
8.__get() 。
当对获取无法访问的属性值的时候自动调用 。
9.__unset() 。
当销毁无法访问的属性的时候自动调用 。
10.__isset() 。
当判断无法访问的属性是否存在的时候自动调用 。
11.__call() 。
当调用无法访问的普通方法时自动触发 。
1
2
3
4
5
6
7
8
9
10
|
<?php
class
Stu{
public
function
__call(){
echo
"error"
;
}
}
$stu
=
new
Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu
->show();
|
12.__callststic() 。
当无法通过静态方法访问时自动触发 。
1
2
3
4
5
6
7
8
9
10
|
<?php
class
Stu{
public
static
function
__callstatic(){
echo
"error"
;
}
}
$stu
=
new
Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu
::show();
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我.
原文链接:http://www.cnblogs.com/zxf100/p/6745055.html 。
最后此篇关于PHP中常用的魔术方法的文章就讲到这里了,如果你想了解更多关于PHP中常用的魔术方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
本文主要给大家介绍Mysql数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 1 分库 1.1 按照功能分库 按照功能进行
在当前对象由其他包含对象操作的系统中,当传递对当前对象的引用时,链接似乎一直在继续......没有任何结束(对于下面的代码,Car ->myCurrentComponent->myCar_Brake-
我有一个密码 UIAlertView,我们要求用户提供。我需要根据情况在不同的 View 上询问它,从 downloadViewController (用户下载数据后),当他们切换到他们的数据时(如果
我正在尝试编写一个函数,使得对于任何整数 x 的 P(x) 都有一个包含三个元素的列表,即平方、立方和 n 的四次方,但我仍然不知道如何组合然后制作一个函数,例如我有平方、立方体和 4 次幂函数下面是
关闭。这个问题需要更多 focused .它目前不接受答案。 关闭4年前。 锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。 我能否列出一份常见的
Python 常用 PEP8 编码规范 代码布局 缩进 每级缩进用4个空格。 括号中使用垂直隐式缩进或使用悬挂缩进。 EXAMPLE: ?
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 去年关闭。 Improve this questio
在经典 ui 中,您可以使用 xtype:cqinclude 包含来自不同路径的 rtePlugins,基本上为标准 RTE 插件创建一个位置,我如何在 Touch UI 中执行相同操作? 我尝试使用
在经典 ui 中,您可以使用 xtype:cqinclude 包含来自不同路径的 rtePlugins,基本上为标准 RTE 插件创建一个位置,我如何在 Touch UI 中执行相同操作? 我尝试使用
*strong text*我有多个网络应用程序使用了一些常见的依赖项,比如蒙戈连接器谷歌 Guava 乔达时间 我想到将它们从 webapp/WEB-INF/lib 中取出并放入一些 common-l
我正在编写一个 Web 服务器,我想知道哪些 HTTP 请求 header (由客户端发送)是最常见的,因此我应该重点实现。 目前,我只支持Accept 和Host。 最佳答案 不确定您的范围,但由于
我是一名优秀的程序员,十分优秀!