• 每次回顾,总会有一点小收获!


    一、$a = 0;

    $a[] = 2; // 不能将标量值用作数组 PHP Warning: Cannot use a scalar value as an array

     

    $arr = ['1', '2'];

    foreach($arr as $k=>$v){

      if($k == 0){

        $adm = '3333';

      }else if($k == 1){

        $adm[] = 'test'; // PHP致命错误:Uncaught error:[]运算符不支持/code/main中的字符串。PHP Fatal error: Uncaught Error: [] operator not supported for strings

      }

    }

    var_dump($adm);// 字符串不再支持 空索引运算符。将空索引运算符应用于字符串(例如$adm[] = $x)会引发致命错误,而不是无声地转换为数组。 若将else if 里改为 $adm[1] = 'test',则不会报错。 故字符串不再支持空索引运算符

     

    二、$a = [1=>5,5=>8,22,2=>'8',81];
      var_dump($a);// [ 1=>5, 5=>8, 6=>22, 2=>'8', 7=>81 ]; 索引数组的下标定义

    三、$arr = array('3', '2', '1');

    foreach($arr as &$v){} // 此次循环遍历,将$v的指针指向下标为2的位置,打印$arr,数据不会变。
    //var_dump($arr); // 即此次便利仍未 ['3', '2', '1']

    foreach($arr as $v){//因为上次循环已将$v指针指向了下标为2的位置,故改变$v的值,也即是改变下标为2的值

    var_dump($arr);// 第一次循环,给$v赋值3,即下标为2的位置也为3,故输出['3', '2', '3']
    // 第二次循环,给$v赋值2,即下标为2的位置也为2,故输出['3', '2', '2']
    // 第三次次循环,此时$arr = ['3', '2', '2'],不再是原来的['3', '2', '1'],给$v赋值2,即下标为2的位置也为2,故输出['3', '2', '2']
    }

    var_dump($arr); // 因为第一次循环遍历修改了$v指针的指向,故第二次循环,随着$v值的变化,$v指针指向的位置也会随之改变。故输出['3', '2', '2']


    四、$count = 5;

      function get_count(){
        static $count = 0;
        return ++$count;
      }

    echo $count++; // 先输出后执行++, 执行下一行前$count++变为6,故输出5,
    echo ++$count; // $count = 6, 先执行++,$count变为7后输出,故输出7

    // static静态变量作用于仅限于函数内部,且若不做unset(),则此次变更的值,下次调用函数,仍然适用。eg:
    get_count(); // static $count = 0, 执行++后输出,static $count = 1; 此时return $count = 1;
    echo get_count(); // 再次调用函数,static $count沿用上次函数变更后的值即static $count = 1; 后先执行++后输出,即输出为2

    五、$arr = [1, 'aa' => 2, 3, 4];

    foreach($arr as $k=>$v){
      print($k == 'aa' ? 5 : $v); // 输出结果依次为 5534
    }

    // int 和 string 做比较判断时,会将string转换为int型来比较,字符串转换为整型结果为0
    // 故 0 == 'aa' 会返回true,都是0 若 0 === 'aaa' ,则返回false,因为===全等比较,要判断类型

  • 相关阅读:
    [萌新向]在windows环境下配置基于wsl的Vim文本编辑器
    模板集合
    MATLAB:非线性规划fmincon
    Linux虚拟机网络配置
    Hyper-V 下linux虚拟机静态IP上网配置的两种方式(2)
    Hyper-V 下linux虚拟机静态IP上网配置的两种方式(1)
    centos6.5单机配置NFS
    mysql 8.0 忘记密码
    前端上传base64图片到七牛云总结
    个人作业——软件工程实践总结&个人技术博客
  • 原文地址:https://www.cnblogs.com/bestvish/p/12063524.html
Copyright © 2020-2023  润新知