PHP经典实例读书笔记 (函数)

PHP经典实例(php cookbook)读书笔记 (0x06)

0x06函数


设置默认值

    function this_function($val = 'de'){
        echo $val;
    }
    echo this_function();// de
  -----------------------

引用传递

    function this_function(&$val){
        $val = 2;
    }
    $v = 1;
    this_function($v);
    echo $v;//2

当声明函数应传入引用的参数时,就不能传入一个常量。


强制传入参数的类型

    function this_function(array $val){
        ...
    }
    $v = 1;
    this_function($v);//E_RECOVERABLE_ERROR

类型提示可以是类名,接口名,array,callable,如果参数与类型提示不匹配,触发E_RECOVERABLE_ERROR错误


按引用返回值(返回一个引用)

    $v =array(0,1,2,3,4,5,6,7,8,9);
    function &this_function(&$val){
        foreach( $val as $key => $v)
        if( $v == 1)return $val[$key];
    }
    $val =& this_function($v);
    $v[1] = 100;
    echo $val;//100
    //如果返回函数里的变量如$v,也可以得出值为1,使用引用返回没有意义。

当变量名由函数等组成的表达式计算出来时,把表达式使用大括号括起来。

    ${find_this_name()} = 111;

调用可变函数

all_user_func($function_name,$arg1,$arg2,...);
all_user_func_array($function_name,$args[]);

$function_name为调用的函数名,$arg1,$args[]为传入函数的参数

在函数中获取所有参数func_get_args()

调用类中的方法

$obj = new classs_name();
call_user_func(array($obj, $function_name), $arg1,$arg2,...);

调用类中的静态方法

call_user_func(array($classs_name, $function_name), "111");
//或
call_user_func("$classs_name::$function_name",$arg1,$arg2,...);

在函数中访问全局变量

使用global关键字引入
global $val
或者
$GLOBALS['val']

当需要在函数中在全局域上消除这个变量时应使用
unset( $GLOBALS['val']);
而不是 global $valunset($val);


创建匿名函数以及闭包语法

1.使用闭包语法创建匿名函数
匿名函数将一个函数储存在一个变量中,需要使用闭包语法。

    $b = 1;
    $a = function($arg) use($b) {
        f($arg == $b)echo"Yes";
    }//闭包语法
    $a(1);//调用

use 中是枚举可以在闭包域中使用的变量。
1.使用creat_function(参数表达式,函数内容表达式):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值