批改状态:未批改
老师批语:
<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 = '******************************************************';点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号