AImager

PHP特性

#php

这篇文章会尽量列举PHP语言的特性以及易错点

  • 安装
  • 配置(bad)
  • 模块化
  • 常量
    • 魔术常量
  • 语法
    • 空值
    • 类机制
  • 函数库/类库
    • 数组
    • 异常
    • 自动加载类
    • 加密
    • ReflectionClass: 用于分析类的类
  • 迭代器
  • 魔术常量
  • 魔术方法
  • 超级全局常量
  • 预定义常量
  • Trait

我不喜欢PHP的地方(主观)

  • 混乱的命名和API设计(count、strlen、str_replace、strtotime)
  • array满天飞(其实使用者也有责任)
  • 没有好的异步方式,并发编程上没有好的实践,所以很多都局限在php-fpm这个架子里面
  • 包管理不成熟(composer的普及程度远远不够),命名空间和包概念很乱,设计不够简洁明了(require_once这种设计不应该存在)
  • 居然还需要用c这种异构语言来编写高性能库(php的核心用户不会用c去写库,而且还必须要用zend-api)
  • 作为web编程语言,默认的网络库质量很差
  • 对国际化支持不够好(有很多坑)
  • 历史遗留下来的全局变量(预定义常量、魔术变量等,比如$_GET$_POST,影响代码的模块性,增加心智负担)
  • 魔术变量、魔术方法过于魔术(多余)
  • 类型隐式转换过于灵活(比如string里面的number型式)
  • declare、goto多余