php函数与变量
函数是啥?
“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()函数