函数是啥?

“php函数是只有在调用时才会执行的语句块” 页面加载时是不会运行的。
php函数分为php内建函数和自定义函数。
函数格式

function functionName()
{
        // 要执行的代码
 }

functionName是函数名,函数名可以自定义
如何调用?
functionName();
调用函数用函数名加括号即可。

变量是啥?
变量是用于存储数据的容器。
和代数很像
变量以 $ 符号开始,后面跟着变量的名称
变量区分大小写

函数变量的区别
函数是一段语句里面可以执行很多代码,函数里面可以套函数。
变量是运行结果的存储容器。

函数详解
函数

function 函数名(参数1,参数2,...){
    // 函数体
}

参数,可以有多个,也可以一个都没有,但是,就算没有参数,括号必须有。
函数体内的代码,可以有一行,也可以多行,也就可没有,但是,就算没有,花括号必须有。

如何调用函数

函数名(参数,...); 没有参数时,括号不能省略

函数只有在被调用时,才会进入函数体去执行里面的代码
调用函数时,在哪里调用,执行完后,就回到哪里
<?php

    $a=1;
    $b=3;
    add($a,$b);
    echo '---------------';
    function add($a,$b){
        echo $a+$b;
    }
    echo '++++++++++++++';

输出的结果是4----------------------+++++++++++++++++++
<?php

//function sayhi(){};
//sayhi;
//echo sayhi;//当做了常量
//echo sayhi();
echo '------------------------';
function sayhi($name){
    echo '大家好,我是'.$name;
} //一看是函数跳过,执行后面的echo '+++++++++++++++';,接着是sayhi();

echo '+++++++++++++++';
sayhi('黑妞');
echo '==============';

调用函数时,会把括号里的内容(实参),传递到函数对应的形参中。

函数写的位置没关系,只要有这个函数就行,调用函数时,会去找这个函数,就算函数在调用的下面,也能找到

函数形参只在函数内部有效,是局部的,在函数外面,感知不到
在函数内部修改形参,不影响函数外面同名的变量

<?php

    $a=1;
    test($a);
    function test($a){
        echo $a;
        $a=4;
        echo '函数内部的$a的值是:'.$a;
    }
    echo '函数wai部的$a的值是:'.$a;

输出结果是:1函数内部的$a的值是:4函数wai部的$a的值是:1
<?php

//函数可以有返回值也可以   没有返回值
function add($a,$b){
    echo $a+$b;
}
add(1,3);
echo '<br>';
function add2($a,$b){
    return $a+$b; 
 }
 $sum=add2(4,3);//用$sum接收return 返回的值
 echo '$sum的值'.$sum; 

变量的作用域

形参的作用域
    只在函数内部起作用,在外面不能输出来
局部变量
    只在函数内部,函数被调用时都会重新初始化
全局变量
    可以在函数内部使用,但是,需要加上global
<?php

$a=44;
function test(){
    $b=33;
    
}
test();
echo $b;输出结果是:没有任何输出

<?php


$a=44;
function test(){
    $b=33;
    global $a;
    echo $a.'<br>';
}
test();
echo $b;
echo $a;

输出两个44

<?php

    $money=100;
    function eat(){
        global $money;
        $money=$money-10;
        
    }
    function buy(){
        global $money;
        $money=$money-30;
    }
    eat();
    buy();     
    echo $money;    

引用传递

值如果被更改,外面的变量,会跟着变(把外面变量的地址传给了函数,并没有复制值)

do{

}while();
举例:
<?php

$i=0;初始化一定要写作do--while的外面
$a=true;
do{
    $i++;
    echo 'a';
    if($i>6){
        $a=false;
    } 
}while($a);//定$a为false时程序就结束 了
        echo '<tr bgcolor="'.$color.'">';正确
        echo '<tr bgcolor="$color">';错误,单引号不能解析双引号里的变量

万能的是while()函数

2021-07-01T05:56:10.png