什么是__call()魔术方法?

__call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法。__call()方法包含两个参数,即方法名和方法参数。其中,方法参数是以数组形式存在的。

下面我们举个简单的例子帮助大家理解:大理石平台生产厂

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<?php

header("content-type:text/html;charset=utf-8");

class Sport{

public function run(){

echo '方法存在直接调用我';

}

function __call($name, $arguments)

{

echo '方法不存在调用我';

echo '<br/>';

echo '方法名为:'. $name;

echo '<br/>';

echo '参数为:<pre>';

var_dump($arguments);

}

}

$sport = new Sport();

$sport ->run();

echo '<br/>';

$sport ->football('贝克汉姆',30);

我们创建一个类,在类中创建一个run方法和魔术方法__call()。接着,我们实例化对象$sport调用两个方法,一个是在类中存在的run()方法,一个是不存在的football()方法。大家可以运行代码查看结果。https://www.bzddrive.com/zxmzcj/1183.html

原文地址:https://www.cnblogs.com/furuihua/p/12167784.html