PHP随笔笔记

  • wampserver 相关问题记录在了我segmentfault上,点击这里。

  • && 或 & 、|| 或 | 都可以做逻辑运算。
    && 和 || 会发生“短路问题”,看下面代码:

10 ) {      
          // do sth...    
     };      
     echo $n;       // 这里因为 $n < 5 为false,所以 $n++ 不会执行,$n 输出为10
?>

|| 同上,用& 、| 没有“短路问题”。

  • PHP全局变量的使用方法。
    在PHP中我们无法分辨变量的声明和使用,这点跟其他语言有所区别。若在一个函数类中使用全局变量(可以看做在该函数外部声明的变量),看下面代码:

  • PHP 静态变量
    1、静态变量不存在堆栈中,而在静态代码段中保存。
    2、一个函数多次调用,只会在第一次调用时声明并保存,之后再调用直接在内存中读取使用。
    看下面的代码:
function test () {
      static $a = 0;
      $a++;
      echo $a;
}
test();
test();
test();
test();
//  输出 1 2 3 4
  • 变量函数*
    看下面代码:
function one ($a, $b) {
      return $a + $b;
}
function two($a, $b) {
      return $a * $a + $b * $b;
}
function three($a, $b) {
      return $a * $a * $a + $b * $b * $b;
}
// $s = "one";
// $s ="two";   // 字符串*
$s = "three";
echo "结果是:".$s(1, 2);
  • 递归函数*
    看下面代码:
";                  //                    2
        if ( $n > 0 )                     //                    1
             demo($n-1);                  //                    0
        else                //输出--->>   //                    -------
             echo  "-------
"; // 0 echo $n."
"; // 1 } // 2 demo(4); // 3 ?> // 4 // 1、调用demo,输出5 // 2、进行判断,成立 // 3、调用demo,传入4,输出4,再次判断,成立,调用demo...,依次输出了4 3 2 1 0 // 前几部的每次调用demo,demo并没有执行完成,而是接着再次调用demo,当判断不成立时, // 输出"--------"并且最后被调用的demo将最先被执行完依次输出了0 1 2 3 4
  • 数组----遍历*
    1.foreach循环遍历数组:
//                                a.不遍历key
"vesper", "age"=>18);
    foreach($user as $val) {
        echo "------->".$val."
"; } ?>
//                                b.遍历出key
"vesper", "age"=>18);
    foreach($user as $key=>$val) {
        echo $key."------->".$val."
"; } ?>

2.while(){}、list()、each()组合循环遍历
先分别看下list()、和each()能做什么:

//                                list()

//  1.list() 数组中的每个元素会被赋值给list()中的参数,list()将每个参数zhuan转为变量
//  2.注意数组中的元素个数要与list()参数个数保持一致
//    list(, $name, ) = array(21, "vesper", 18); 这样也是可以的!!!
//  3.list()只能接受索引数组,且按索引下标的顺序,即第一个参数为key第二个参数为value
//                                each()
"vesper", "age"=>18);
    $a = each($user);
    print_r($a);  //输出:Array ( [1] => 21 [value] => 21 [0] => 0 [key] => 0 )
    $b = each($user);
    print_r($b);// 输出:Array ( [1] => vesper [value] => vesper [0] => name [key] => name )
?>
// 如上代码:
// 1.each()需要一个数组作为参数
// 2.返回值也是一个数组
// 3.返回的数组 0,1,key,value 四个下标是固定的,其中0和key下标是当前参数数组元素的键,
//   1和value下标是当前参数数组元素的值
// 4.默认当前元素就是第一个元素
// 5.执行一次后当前元素就变为第二个元素,依次类推
// 6.直至最后一个元素执行完后,再执行则返回false

综合以上,结合while循环:

"vesper", "age"=>18);
    while(list($key, $value) = each($user)) {
        echo $key."---->".$value."
"; } ?> // 输出结果 // 0---->21 // name---->vesper // age---->18

试下下面代码:

"vesper", "age"=>18);
    while(list($key, $value) = each($user)) {
        echo $key."---->".$value."
"; } while(list($key, $value) = each($user)) { echo $key."---->".$value."
"; } while(list($key, $value) = each($user)) { echo $key."---->".$value."
"; } // 只输出了一次? // 0---->21 // name---->vesper // age---->18 ?>

使用数组的内部指针:

//  prev(数组)     前移一位
//  next(数组)     后移一位
//  reset(数组)    重置
//  end(数组)      最后一位
//  current(数组)  当前元素的值
//  key(数组)      当前元素的键
"vesper", "age"=>18);
    while(list($key, $value) = each($user)) {
        echo $key."---->".$value."
"; } reset($user); next($user); while(list($key, $value) = each($user)) { echo $key."---->".$value."
"; } reset($user); while(list($key, $value) = each($user)) { echo $key."---->".$value."
"; } reset($user); echo current($user)."--------->".key($user); /********输出********* 0---->21 name---->vesper age---->18 name---->vesper age---->18 0---->21 name---->vesper age---->18 21--------->0 **********************/ ?>

你可能感兴趣的:(PHP随笔笔记)