Correction status:Uncorrected
Teacher's comments:
<style> hr{ border: 1px solid mediumvioletred; } </style> <?php // demo1: php 全局变量 和在函数里面的变量互相不能通用,各自有各自的作用域,要使用必须使用global 声明。 echo 'demo1:<br>'; $x = 5; $y = 10; function sum1(){ global $x,$y; $z = $x + $y; return $z; } echo sum1() . '<hr>'; $qq = '******************************************************'; //demo2:传参方式://1、可以通过全局实参和函数形参绑定传参; //2、可以再调用函数的时候传参; //3、global定义的局部作用域 优先 于 函数调用传参 sum2; echo 'demo2:<br>'; function sum2($x,$y){ global $x,$y; $z = $x + $y; return $z; } echo sum2(11,22) . '<hr>'; //结果为 15 ,而不是33; $qq = '******************************************************'; //demo2_1 echo 'demo2_1:<br>'; function sum2_1($x,$y){ $z = $x + $y; return $z; } echo sum2_1(22,44) . '<hr>'; $qq = '******************************************************'; //demo3: echo 'demo3:<br>'; function sum3(){ $a = func_get_arg(0); //输出第1个参数; $b = func_get_arg(1); //输出第1个参数; $c = func_get_args(); //获取所有传输过来的参数形成一个数组; // return $b; //return $a,$b; //函数只能返回一个数值或一个数组,不能返回多个数值; // return print_r([$a,$b]); //函数只能返回一个数值或一个数组,不能返回多个数值,如果要返回可以加【】,放在一个数组中打印 //return $a+$b; //return print_r($c); //打印一下$c数组 // $tobal=0; // foreach ($c as $value){ //运用一个循环来计算所有参数之和; // $tobal += $value; // } // //return $tobal; // $sum = array_sum($c); //PHP7 可以用一个函数来求所有参数之和; return $sum; } echo sum3(1,2,3,4,5,6,7,8,9) . '<hr>'; $qq = '******************************************************'; //demo4: 变长数组,在变量前加 ... 即可读取所有参数; echo 'demo4:<br>'; function sum4(...$a){ // return '<pre>' . print_r($a,true); //返回一个打印好的变长数组,结果为键值对 $sum = array_sum($a); //求数组之和 return $sum; } $arr = [6,7,8,9]; echo sum4(1,2,3,4,5,...$arr) . '<hr>'; //结果为45 $qq = '******************************************************'; //demo5: php7可以对形参类型进行限制; echo 'demo5:<br>'; function sum5(string ...$a){ return '<pre>' . var_dump($a); //返回一个打印好的变长数组,结果为键值对,且变更参数为 字符串类型 //$sum = array_sum($a); //求数组之和 //return $sum; } $arr = [6,7,8,9]; echo sum5(1,2,3,4,5,...$arr) . '<hr>'; //结果为45 $qq = '******************************************************'; //分割线 //demo6: php7中, 可以限定函数的返回类型 echo 'demo6:<br>'; function demo6($a, $b):int { return $a + $b; } // 不限定返回类型,输出: 4.7, 限定后返回: 4 echo demo6(1.4, 3.3) . '<hr>'; $qq = '******************************************************'; //demo7 :函数的全局变量和局部变量 //1、函数内不能直接访问外部全局变量,全局也不能直接使用函数局部变量; //2、函数内部使用外部变量可以在函数内使用 global声明一下就可以用; //3、或者函数外部使用超全局变量数组($GLOBALS['变量名']) 和 常量定义(define('变量名','变量值')),define定义不允许改变和删除 echo 'demo7:<br>'; //第一种使用外部变量办法; $email = 'admin@y160.php'; $email1 = 'admin@yzz9.com'; function demo7($a) { return $a ; } echo demo7($email) . '<hr>'; $qq = '******************************************************'; //第二种使用外部变量办法; echo 'demo7_1:<br>'; function demo8() { global $email; return $email ; } echo demo8() . '<hr>'; $qq = '******************************************************'; //第三种使用外部变量办法; echo 'demo7_2:<br>'; $name = '霸王'; function demo9() { return $GLOBALS['name']; } echo demo9() . '<hr>'; $qq = '******************************************************'; //第四种使用外部变量办法; echo 'demo7_3:<br>'; define('QQ','121857425'); function demo10() { return 'QQ = ' . QQ; } echo demo10() . '<hr>'; $qq = '******************************************************'; //demo8 : 外部访问函数内部变量 echo 'demo8:<br>'; function demo11() { $ww = '我的天啊'; $rr = '我不怕'; return [$ww,$rr]; //只能靠return 出去一个数值或一个数组 } echo print_r(demo11()) . '<hr>'; $qq = '******************************************************';
点击 "运行实例" 按钮查看在线实例