本文档中使用的伪类型

mixed

mixed说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

例如gettype()可以接受所有的PHP类型,str_replace()可以接受字符串和数组。

number

number说明一个参数可以接受多种不同的(但并不必须是所有的)类型。

例如gettype()可以接受所有的PHP类型,str_replace()可以接受字符串和数组。

callback

有些诸如call_user_function()或usort()的函数接受用户自定义的函数作为一个参数。Callback函数不仅仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。

一个PHP函数用函数名字字符串来传递。可以传递任何内置的或者用户自定义的函数,除了语言结构如array(),echo(),empty(),eval(),exit(),isset(),list(),print()

和unset()。

一个对象的方法以数组的形式来传递,数组的下标0指明对象名,下标1指明方法名。

对于没有实例化为对象的静态类,要传递其方法,将数组0下标指明的对象名换成该类的名称即可。

除了普通的用户定义的函数外,也可以使用create_function()来创建一个匿名的回调函数(callback)。

Example #1回调函数(callback)示例

<?php

  //普通的回调函数

  function my_callback_function(){

    echo 'Hello world!';

}

  //回调函数

   class MyClass{

    static function myCallbackMethod(){

      echo 'Hello World!';

  }

}

  //Type 1:Simple callback

  call_user_func('my_callback_function');

  //Type 2:Static class method call

  call_user_func(array('MyClass','myCallbackMethod'));

  //Type 3:Object method call

  $obj=new MyClass();

  call_user_func(array($obj,'myCallbackMethod'));

  //Type 4:Static class method call

  call_user_func('MyClass:myCallbackMethod');

  //Type 5:Relative static class method call

  class A{

    public static function who(){

      echo "A ";

    }

  }

  class B extends A{

    public static function who(){

      echo "B ";

    }

  }

  call_user_func(array('B','parent::who'));

 ?>

原文地址:https://www.cnblogs.com/vegas/p/5222888.html