• PHP编码技巧


    原则

    正确实现功能
    执行速度与快
    占系统资源少
    后期维护方便

    编程注意

    1.命名很重要
    2.适当的使用注释
    3.使用一个变量,需要初始化
    4.优先使用单引号 $row[‘id’]的效率是$row[id]的7倍
    5.用“1$a” 替换 “$a1”
    6.防御式编程思想
    7.保护程序免遭非法输入数据的危害
    8.错误处理技术
    9.异常处理
    10.隔离程序,使之相互影响小
    11因地制宜的防御,过度防御会增加复杂度

    • 明确包含文件的路径
    • 给予恰当的默认值
    • 自定义错误报警的级别
    • 不依赖系统环境参数,程序要动态了解所处的环境
      12.纯 PHP 代码,最好在文件末尾删除 PHP 结束标记。
      13.header头的编码 header("Content-type: text/html;charset=utf-8");
      14.坚持字符编码统一
      $phpcoding=PHP文件编码;$tplcoding=模版编码;
      $mysqlcoding=数据库编码;
      $phpcoding == $tplcoding ==$mysqlcoding
      15.error_reporting(7)
      16
      usort — 使用用户自定义的比较函数对数组中的值进行排序
      rawurlencode — 按照 RFC 1738 对 URL 进行编码
      parse_url — 解析 URL,返回其组成部分
      http_build_query — 生成 URL-encode 之后的请求字符串
      exif_imagetype — 判断一个图像的类型
      levenshtein — 计算两个字符串之间的编辑距离
      uniqid — 生成一个唯一ID
      get_browser — 获取浏览器具有的功能
      get_defined_vars — 返回由所有已定义变量所组成的数组
      str_word_count — 返回字符串中单词的使用情况
      17.用i+=1代替i=i+1
      18.用isset代替strlen
      strlen($sub)<=12
      !(isset($sub[12]))
      19.用strtr代替str_replace
      20.函数赋值默认参数:+ 运算符
      21.用 ... 定义变长参数函数
      22.用 ** 进行幂运算
      23.用 “[]” 定义数组
      24.?? 运算符

    IF

    //if的使用技巧给定初始值

    $orderTitle = "停售";
    if(1==$orderState){
        $orderTitle = "预订"
    }
    return $orderTitle;
    

    //if的使用技巧:用 && 替换 if

    if(strlen($newpwd)<6){
        $message = '密码长度不够';
    }
    strlen($newpwd)<6 && $message = '密码长度不够';
    

    //if的使用技巧之“三元运算符替换"

    //简化三元符

    $action =  (empty($_POST['action'])) ? 'default' : $_POST['action'];
    
    $action = $_POST['action'] ?: 'default';
    

    //去掉多此一举的if

    //else if => switch case

    //表驱动代替if

    $sortTable = array(
        'test1'=>1,
        'test2'=>2,
        'test3'=>3,
    );
    $sortid = $sortTable[$sortName];
    

    用while(true) 表示无限循环,别用for
    特定情况下[发邮件、采集网页],要加延时sleep
    循环体内尽可能不用函数或更耗资源的调用
    foreach代替while和for循环(PHP)
    避免空循环
    只做一件事,尽可能短,控制在50行以内
    循环嵌套限制在3层以内

    函数

    函数的最佳最大长度是50-150行代码
    函数参数不超过7个
    短小函数更容易理解也方便修改
    只做一件事情的函数更易于复用
    短小的函数测试更方便

    复杂的逻辑表达式做成布尔函数

    PHP新增特征

    新增了动态访问静态方法的方式
    内置用于开发的 CLI 模式的 web server
    实例化时访问类成员 (new Foo)->bar();
    对函数返回数组的成员访问解析 print func()[0];
    新增二进制直接量 $bin = 0b110011;
    boolval() 函数
    新增 array_column() 函数
    直接通过下标获取访问数组和字符串字面量的元素或字符
    empty() 支持传入一个任意表达式,而不仅是一个变量
    foreach 支持 list()
    新增 finally 关键字
    新增 Traits
    函数返回值类型声明,标量类型声明

  • 相关阅读:
    StratifiedKFold和KFold的区别(几种常见的交叉验证)
    剑指offer:用栈来建立队列
    剑指offer:斐波那契数列
    树状数组 gcd 查询 Different GCD Subarray Query
    Loadrunner的使用
    Loadrunner的使用
    MySQL Windows 环境安装
    RobotFrameWork 自动化环境搭建(基于 python3.6)
    MySQL Linux 环境安装
    【读书笔记】状态模式代码C#
  • 原文地址:https://www.cnblogs.com/weizaiyes/p/8136350.html
Copyright © 2020-2023  润新知