魔术方法:
-
__construct(),类的构造函数
-
__destruct(),类的析构函数
-
__call(),在对象中调用一个不可访问方法时调用
-
__callStatic(),用静态方式中调用一个不可访问方法时调用
-
__get(),获得一个类的成员变量时调用
-
__set(),设置一个类的成员变量时调用
-
__isset(),当对不可访问属性调用isset()或empty()时调用
-
__unset(),当对不可访问属性调用unset()时被调用。
-
__sleep(),执行serialize()时,先会调用这个函数
-
__wakeup(),执行unserialize()时,先会调用这个函数
-
__toString(),类被当成字符串时的回应方法
-
__invoke(),调用函数的方式调用一个对象时的回应方法
-
__set_state(),调用var_export()导出类时,此静态方法会被调用。
-
__clone(),当对象复制完成时调用
-
__autoload(),尝试加载未定义的类
-
__debugInfo(),打印所需调试信息
9,10,16目前还没想明白有什么用。
关于 __sleep()函数的描述:serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。 这个看着有点儿意思 。
魔术变量:
__LINE__
返回文件中的当前行号。
<?php
echo __LINE__;
echo "\n";
///输出结果
wangtb:c wangtb$ php b.php
3
__FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
<?php
echo __FILE__;
echo "\n";
####
/Users/wangtb/workspace/coding/abs/c/b.php
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
<?php
echo __DIR__;
echo "\n";
###
/Users/wangtb/workspace/coding/abs/c
__FUNCTION__
返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
<?php
function test()
{
echo __FUNCTION__;
echo "\n";
echo "abs";
echo "\n";
}
test();
#####
php b.php
test
abs
__CLASS__
返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
<?php
class t
{
public function __construct()
{
echo __CLASS__;
echo "\n";
}
}
new t();
###
php b.php
t
__METHOD__
返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。6
<?php
class t
{
public function __construct()
{
echo __CLASS__;
echo "\n";
echo __METHOD__;
echo "\n";
echo __FUNCTION__;
echo "\n";
}
}
new t();
###
php b.php
t
t::__construct
__construct