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中的$...为伪变量,表示等等的意思,当一个函数可以接受任意个参数时使用此变量名。

  • 相关阅读:
    Alpha冲刺(3/10)
    Alpha冲刺(2/10)
    Alpha冲刺(1/10)
    软工实践第七次作业——需求分析报告
    2018软工实践第八次作业-团队项目UML设计
    2018软工实践第六次作业-团队选题报告
    2018软工实践第五次作业-结对作业(2)
    软工实践第四次作业-团队展示
    2018软工实践第三次作业-结对作业
    Alpha冲刺(4/10)
  • 原文地址:https://www.cnblogs.com/457248499-qq-com/p/7357793.html
Copyright © 2011-2022 走看看