变量
声明与使用
声明:
只能是字母或者下划线开头
使用:
$a = $b = 5;//复制,简单赋值,两者互不干涉,各自使用自己的内存
$a = &$c;//引用,a是c的别名
$a = &(12+2);//非法,只能对有名字的表达式引用。
变量的作用域
局部变量:
在函数内部定义,作用域是所在函数。
全局变量:
定义在函数之外的,作用于整个php文件,但自定义的函数内不可用,除非使用global声明此变量。
静态变量:
static声明的变量。能够在函数调用结束后仍保留值。再次进入其定义域内可以再次使用。
for($i = 1;$i <= 5;$i++){
static $n = 0;//静态变量的 初始化 只在 第一次 调用时执行
$n += 1;
echo $n;
}
//1...5
$a = 1;
$b = 2;
function show(){
echo $a; //nothing
global $b;//指向全局的变量,也可直接用作$GLOBLAS['b']
echo $b; //2
}
可变变量
动态改变一个变量名称(该变量的名称由另外一个变量值确定)
$a = 'b';
$b = 'real_b';
echo $a;//b
echo $$a;//real_b
比较运算符:
=== 恒等,类型,数值
!== 不恒等,类型或者数值
错误控制运算符:
在错误的表达式前加@,只是对错误信息的屏蔽,不能解决。
三元运算符:
$value = ($age > 18)? adult:child;
函数:
function fun_name($para){
fun_body;
}
按值传递:
实参赋值到形参中,不会对实参有影响。
function fun_name($a){}
按引用传递:
将实参的内存地址传递给形参,对形参的操作直接影响到实参。
function fun_name(&$a){}
默认参数(可选参数):
将此参数放在参数列表的末尾(必须)。
function fun_name($a,$b = ""){}
fun_name(1,2);
fun_name(1);
function fun_name1($a,$b = "c"){}
从函数中返回值:
function fun_name(){
return something;
}
return只能返回一个值,多值时可以使用数组。
变量函数:
function fun_a(){}
function fun_b($i){}
$name = "fun_a";
$name(); //调用fun_a
$name = "fun_b";
$name("d"); //调用fun_b("d")
对函数的引用:
实质是对返回值的引用。
function &myfunc($tmp){
return $tmp;
}
$str = &myfunc("hi");
取消引用:
unset() 断开变量名和变量内容 之间的绑定,不是销毁内容。
$a = "a";
$b = &$a;
echo $b;//a
unset($b);
echo $a;//a
unset,is_null,isset,empty:
null 或是被unset或是没赋值的变量,isset为false,is_null
为true
变量是当前类型初始值或者isset为false,则empty为true**