标签:方式 排序 cti 不能 动态 UNC 静态 限制 dem
<?php function demo(){ //查询传入的参数几个参数 // return func_get_arg();//返回2 //查看参数的值,数组 // print_r(func_get_args());//Array([0]=>1,[1]=>2); // print_r(func_get_args()[0]);//1; // print_r(func_get_args(1));//2; //求数组之和 return array_sum(func_get_args());//3 } demo(1,2); //1.PHP7可变形参 function demo2($a,$b,...$c){ return $a+$b+array_sum($c); } var_dump(demo2(1,2,3,4,5)); function demo3(){ return array_sum(func_get_args()); } $arr = [4,5]; var_dump(demo3(5,...$arr)); //2.PHP7新增 var_dump($_GET[‘user‘] ?? 1); // 等价于 var_dump(isset($_GET[‘user‘])?$_GET[‘user‘]:1); //3.参数类型限制 function demo4(int $a,...$b){ return $a+array_sum($b); } echo demo4(2.5,3,4,‘10‘);//19 2.5忽略小数点后面数字 //4.php7限制返回类型 function demo5($a,$b):int { return $a+$b; } //注意这里是先执行函数再固定返回值 echo demo5(6.2,3.9);//返回10; //5.常量的定义 define(‘NATION‘,‘中国‘);//函数 const COURSE = ‘PHP‘;//声明 // define和const的其它区别: // 1.const不能再条件语句中定义常量,但是define是可以的 // 2.const采用一个普通的常量名称,define可以采用表达式作为名称 // 3.const只能接受静态的标量,而define可以采用任何表达式。 // 4.const本身就是一个语言结构。而define是一个函数。所以使用const速度要快的多。 // 函数内访问外部变量 global echo ‘<hr>‘; //6.数组排序函数 $arr = [1,9,6,6,10,3,2]; sort($arr);//成功返回true ,失败返回false,升序 rsort($arr);//降序 $arr_assoc = [‘2‘=>‘11‘,‘1‘=>22]; asort($arr_assoc);//以值升序 ksort($arr_assoc);//以键升序 arsort($arr_assoc);//以值降序 krsort($arr_assoc);//以键降序 usort($arr,function($a,$b){ // return $a-$b;//升序 return $b<=>$a;//降序 }); print_r($arr); //7.函数引用外部变量 $str = ‘php‘; // $f1 = function() use($str){ // &引用地址 $fun = function() use(&$str){ $str = ‘js‘; return $str; //返回 ‘js‘; }; $fun(); //返回 js echo $str; //返回js echo ‘<hr>‘; function sum($a,$b){ return $a+$b; } //回调方式调用函数 echo call_user_func("sum",6,8);//14 echo call_user_func_array("sum",[6,8]);//14 echo ‘<hr>‘; class A { public function func($a,$b) { return $a+$b; } public static function func1($a,$b) { return $a+$b; } } //常规方式 echo (new A)->func(6,8)."<hr>";//14 //回调方式 echo call_user_func_array([(new A),‘func‘],[6,8]);//14 //调用类中静态方法 echo call_user_func_array([‘A‘,‘func1‘],[6,8]);//14
总结:
1. func_get_args() 返回当前函数的实参数量
2.数组排列 sort($arr) 以值升序,rsort($arr)降序,asort()值升序,ksort()键升序,arsort()值降序,krsort()键降序
3.call_user_func($arr,param1,param2); 回调方式执行函数
4.call_user_func_array($arr,[param1,param2]);
4.1 执行类中动态方法 call_user_func_array([(new Class),‘method_name‘],[param1,param2]);
4.2 执行类中静态方法 call_user_func_array([(‘classname‘),‘method_name‘],[param1,param2]);
5.函数引用外部变量 $func = function() use ($var_name){}
6.函数强制返回数据类型 $func = function() :int{}
7.常量的定义:define(‘VAR_NAME ‘,‘value‘); const VAR_NAME = value;
8. define/const 的区别:
1.const不能再条件语句中定义常量,但是define是可以的
2.const采用一个普通的常量名称,define可以采用表达式作为名称
3.const只能接受静态的标量,而define可以采用任何表达式。
4.const本身就是一个语言结构。而define是一个函数。所以使用const速度要快的多。
PHP7新学特性
1. $a??$b 的用法 等同于 isset($a)?isset($a):$b;
2. 可变形参 function demo($a,$b,..$c)//注意只能写 三个 . 传值时可传递多个实参
标签:方式 排序 cti 不能 动态 UNC 静态 限制 dem
原文地址:https://www.cnblogs.com/baboben/p/12019914.html