【三】php之梗
1.php没有顶级作用域,所以你没办法在函数内部使用变量(参数传递除外,而且常量是可以的哟),所以你的变量即使是static的也不能在函数外声明函数里用。除非借助global关键字修饰变量才可以。但是需要注意的是global修饰可不是放在函数外的,而是放在函数里面。
$i=10; global $i;//这么做是不对的 function say(){ global $i;//这样做是正确的,但是只能写成这样,global $i=10;这么写是错的。 echo $i; } say();
2.$的作用:可以理解为将 存有符合变量命名规范的字符串 的变量 解析成指针。
$mk='tttt'; $tttt=10; echo $$mk;//10
3.如果对字符串进行算术运算,那么很不幸的告诉你,即使是单个字符php也不会将其转换成ASCII进行运算。而是将字符串变为0;
4.php是可以操作指针的,比如按引用传递参数
$i=10; function add(&$k){ $k+=10; echo $k;//输出20 } echo $i;//输出20
5.php可以为函数的形参设定初始值
$i=10; function say($i,$j=10){ echo $i+$j; } say($i);//20
6.php所谓变量函数的概念其实和JavaScript中对函数对象(var obj=function(){})的概念一样.
7.php的函数引用实例:
function &say($i,$j=10){ $k=$i+$j;//不能直接return $i+$j表达式,否则会有警告 return $k;//作为函数引用必须要有返回值,否则会有警告 } $k=&say(10,10); echo $k;
8.特立独行的foreach,传说php在5之后可以foreach 对象,(还没学到面向对象,以后再补)
$arr=array('jack','mike','tom'); foreach($arr as $key=>$value){ echo $arr[$key];//jackmiketom echo $key;//012 echo $value;//错误,不能这么做 } foreach($arr as $value){ echo $value;//jackmiketom echo $arr[$value];//错误,不能这么做 }
9.变态的continue:可以再continue后面书写数字,以命令程序跳出几层循环。如: continue 3; 跳出3层循环。