【三】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层循环。

原文地址:https://www.cnblogs.com/JhoneLee/p/3773616.html