Php 内置函数方法使用

php 内置函数方法使用

  • reset
  • strip_tags
  • ReflectionClass::getConstructor
  • ReflectionClass
  • newInstanceArgs
  • is_callable()

reset

  • 输出数组中的当前元素和下一个元素的值,然后把数组的内部指针重置到数组中的第一个元素:
  • 代码示例
    1
    2
    3
    4
    5
    6
    <?php
    $people = array("Bill", "Steve", "Mark", "David");
    echo current($people) . "<br>"; //Bill
    echo next($people) . "<br>"; //Steve
    echo reset($people); //Bill
    ?>

strip_tags

  • 剥去字符串中的 HTML 标签:
  • 代码示例
    1
    2
    3
    <?php
    echo strip_tags("Hello <b>world!</b>"); //Hello world!
    ?>

ReflectionClass::getConstructor

  • 获取类的构造函数
  • 代码示例
    1
    2
    3
    4
    5
    <?php
    $class = new ReflectionClass('ReflectionClass');
    $constructor = $class->getConstructor();
    var_dump($constructor);
    ?>
  • 输出
    1
    2
    3
    4
    5
    6
    object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "__construct"
    ["class"]=>
    string(15) "ReflectionClass"
    }

ReflectionClass

  • 映射类
  • 代码实例
    1
    2
    3
    4
    5
    6
    7
    class Hello {        //定义一个类
    static function index() {
    echo 'hello world';
    }
    }
    $class=new ReflectionClass('Hello'); //建立 fuc这个类的反射类
    var_dump($class);
  • 输出
    1
    2
    3
    4
    5
    object(ReflectionClass)#1 (1) {
    ["name"]=>
    string(5) "Hello"
    }

newInstanceArgs

  • 从给出的参数创建一个新的类实例。
  • code
    1
    2
    3
    4
    5
    <?php
    $class = new ReflectionClass('ReflectionFunction');
    $instance = $class->newInstanceArgs(array('substr'));
    var_dump($instance);
    ?>
    • 如果类的构造函数不是 public 的将导致产生一个 ReflectionException。
    • 当 args 指定了一个或多个参数,而类不具有构造函数时,将导致一个 ReflectionException。

is_callable()

  • 检测函数是否可以调用 是否合法结构
  • code
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class test {
    static function a() {
    return "test";
    }
    }

    class abc {
    public function a($Object,$funcName){
    if (!is_callable(array($Object,$funcName))){
    echo("Error");
    }else {
    echo("OK");
    }
    }
    }

    $abc=new abc();
    $abc->a("test","aa"); //test类下没有aa方法,会输出error
    $abc->a("test","a"); //test类下有a方法,会输出ok