zoukankan      html  css  js  c++  java
  • PHP伪类型和伪变量

    一、伪类型

    PHP伪类型有三种,分别是:1,mixed混合类型。2,number数字类型。3,callback回调类型。

    1,mixed混合类型:

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

    2,number数字类型:

    number参数可以接受integer整型和float浮点型。

    3,callback回调类型:

    例如call_user_func()函数就可接收用户自定义的函数作为一个参数,他是php的一个内置函数。callback函数不仅可以是一个函数,也可以是一个对象的方法,静态类的方法也可以。一个php函数用函数名字符串来传递,可以传递任何内置的或者用户自定义的函数,除了语言结构例如array(),echo(),empty(),eval(),exit(),isset(),list(),print(),unset()等。

    如果要传入一个对象的方法,需要以数组的形式来传递,数组下标0是对象名,下标1是方法名。要是没有实例化为对象的静态类,要传递其方法,要将数组0下标指明的对象名换成该类的名称。

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

    示例::

    [php] view plain copy
     
    1. <?php  
    2.   
    3.     //普通的回调函数  
    4.     function my_callback_function(){  
    5.         echo "my is callback function.";  
    6.     }  
    7.   
    8.     //回调方法  
    9.     class MyClass{  
    10.         static function myCallbackMethod(){  
    11.             echo "my is callback method.";  
    12.         }  
    13.     }  
    14.   
    15.     //num1:回调函数  
    16.     call_user_func('my_callback_function');  
    17.   
    18.     //num2:静态类的方法  
    19.     call_user_func(array('MyClass','myCallbackMethod'));  
    20.   
    21.     //num3:对象方法  
    22.     $obj = new MyClass();  
    23.     call_user_func(array($obj,'myCallbackMethod'));  
    24.   
    25.     //num4:静态类的方法(5.3.0以上)  
    26.     call_user_func('MyClass::myCallbackMethod');  
    27.   
    28.     //num5:相对静态方法调用  
    29.     class A {  
    30.         public static function who(){  
    31.             echo "A";  
    32.         }  
    33.     }  
    34.   
    35.     class B extends A {  
    36.         public static function who(){  
    37.             echo "B";  
    38.         }  
    39.     }  
    40.   
    41.     call_user_func(array('B','parent::who'));   //输出B  
    42.   
    43.     //num6:调用时传入参数  
    44.     function test($a,$b){  
    45.         echo $a;  
    46.         echo $b;  
    47.     }  
    48.   
    49.     call_user_function('test','1','2'); //输出1 2  
    50.   
    51.     //num7:调用类方法传入参数  
    52.     class a(){  
    53.         function b($c){  
    54.             echo $c;  
    55.         }  
    56.     }  
    57.   
    58.     call_user_func(array('a','b'),'1'); //输出1  
    59.   
    60.     //num8:call_user_func_array与call_user_func很相似,只不过换了一种方式传递参数,让参数结构更清晰:  
    61.     function a($b,$c){  
    62.         echo $b;  
    63.         echo $c;  
    64.     }  
    65.   
    66.     call_user_func_array('a',array('1','2'));   //输出1 2  
    67.   
    68.     //num9:用call_user_func_array调用类内部方法  
    69.     class A(){  
    70.         function a($b,$c){  
    71.             echo $b;  
    72.             echo $c;  
    73.         }  
    74.     }  
    75.       
    76.     call_user_func_array(array('A','a'),array('1','2'));    //输出1 2  
    77.   
    78.     //num10:call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:  
    79.     function a($b){  
    80.         $b++;  
    81.     }  
    82.     $c=0;  
    83.     call_user_func('a',$c); //输出1  
    84.     call_user_func('a',array($c));  //输出2  
    [php] view plain copy
     
    1.   


    二、伪变量

    php中的$...为伪变量,表示等等的意思,当一个函数可以接受任意个参数时使用此变量名。

  • 相关阅读:
    zookeeper使用场景
    zookeeper安装配置
    hadoop 远程调试
    deep learning笔记
    Sentiment Analysis(1)-Dependency Tree-based Sentiment Classification using CRFs with Hidden Variables
    PRML阅读笔记 introduction
    Python 学习笔记(2)
    python nltk 学习笔记(5) Learning to Classify Text
    python nltk 学习笔记(4) Writing Structured Programs
    python nltk 学习笔记(3) processing raw text
  • 原文地址:https://www.cnblogs.com/457248499-qq-com/p/7357793.html
Copyright © 2011-2022 走看看