Blogger Information
Blog 61
fans 1
comment 0
visits 69762
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0612-PHP函数
我的博客
Original
834 people have browsed it

实例

<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 = '******************************************************';

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post