PHP常用魔术方法(__invoke魔术方法)

<?php
//文件名:index.php
define(‘a‘,__DIR__);
include ‘/IMooc/Loader.php‘;
spl_autoload_register(‘\\IMooc\\Loader::autoload‘);

$Object = new \IMooc\Object();

echo $Object("test1");//对象本身不能直接当函数用,如果被当做函数用,会直接回调__invoke方法
//test1作为invoke的参数
/*输出:
    string(5) "test1"
    invoke
*/
<?php
//文件名:Object.php
namespace IMooc;
class Object
{
    function __invoke($param)//把一个对象当成一个函数去执行,$param是函数的参数,这里等于“test1”。
    {
        var_dump($param);
        return "invoke";
    }
}
时间: 2024-10-16 16:02:06

PHP常用魔术方法(__invoke魔术方法)的相关文章

php魔术方法与魔术常量

当我们学习 对象的时候,经常会听到老师们说世界万物皆对象,那么也一定会听到魔术方法和魔术常量等概念,那我们在学习温习的时候自己随手总结的: php中常见的魔术方法有哪些呢? 1)魔术方法都以 __双下划线开头! 例如: __construct(); __destruct(); __clone(); __sleep(); __wakeup(); __get() __set(); __isset(); __unset(); __call(); __callStatic() 注意:也许你也许会说__开

PHP中的魔术方法和魔术常量简介和使用

魔术方法(Magic methods) PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用 __isset(),当对不可访问属性调用isset()或e

PHP魔术变量和魔术方法

基础知识:魔术变量和魔术方法 魔术变量:最初PHP魔术变量的出现主要是为了方便开发者调试PHP的代码;当然也可以利用这个实现特殊需求.在写法上魔术变量前后都有两个下划线. 如:_LINE_:返回文件中的当前行号,我们在定位错误的时候经常用到. 魔术方法:主要是随着PHP的面向对象特性出现的(出就是PHP5之后),主要解决的是PHP在面向对象的思想中所遇到的一些特殊情况.魔术方法使用两个下划线开头.所有的魔术方法都需要给予public属性. 如:__construct():通用的类构造函数. PH

PHP的魔术常量和魔术方法

** 魔术常量和魔术方法 PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法; 所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀. 在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能. 1.魔术常量__LINE__ 文件中的当前行号.__FILE__ 文件的完整路径和文件名.如果用在被包含文件中,则返回被包含的文件名.自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对

PHP中的魔术方法和魔术常量

看上去好像挺烦人,但只要通过例子测试一下,就明白了.不做测试,只是看,第二天还是不明白.当然我在抄其他人的日志,然后希望能是自己的理解就好,原文地址PHP的魔术方法和魔术敞亮简介和使用--LaraBot 魔术方法(Magic methods) In PHP, methods start with two "_"is called magic methods, these methods act as very important role, magic method includes:

PHP魔术方法和魔术变量总结

从php5以后的版本,类就可以使用魔术方法了.PHP规定以两个下划线开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法. 目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone. __construct和__destruct __construct和__destruc

PHP魔术方法和魔术变量

PHP魔术方法和魔术变量 魔术方法: PHP把所有以__(两个下划线)开头的类方法当成魔术方法; __construct()->构造方法: __destruct()->析构函数; __get(string $name)->是访问和设置类不存在的成员变量时调用的: __set(string $name, mixed $value)->则是访问和设置类不存在的成员变量时调用的; __call(string $name, array $arguments)->当调用类中不存在的方法

php -- 魔术方法、魔术常量

魔术方法:PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__construct()和与类同名的方法共同出现时,默认调用__construct()而不是同类名方法.一般情况下用户自定义构造方法也会使用__construct(). 2. __destruct()类的析构函数,当该对象的所有引用都被删除,或者对象被显式销毁时执行. 3. __get($name)可以简单

php -- 魔术方法 之 调用方法:__call()、__callStatic()

方法重载:当调用一个不存在或者权限不够的方法的时候,会自动调用__call()方法 public function __call($name,$args){}  :用对象调用方法 public static function __callStatic($name,$args){}: 用类调用静态方法 $name:被调用的方法名 $args:被调用的方法的参数列表数组 <?php //PHP方法重载 class Person{ //方法 private function test(){ echo

php 魔术方法 和 魔术常量

魔术方法: PHP把类中所有以__(两个下划线)开头的方法当成魔术方法,一般建议用户不要将自定义的方法前面加上__作为前缀.魔术方法: 1. __construct() 类的默认构造方法,如果__construct()和与类同名的方法共同出现时,默认调用__construct()而不是同类名方法.一般情况下用户自定义构造方法也会使用__construct(). 2. __destruct() 类的析构函数,当该对象的所有引用都被删除,或者对象被显式销毁时执行. 3. __get($name) 可