很多细节,建议边看边对比 php-manual
- 数组排序函数对比
- 匿名函数 lambda
- print() / sprintf() 等函数
- mysql 存储函数:关联特定数据库
curl --head http://www.baidu.com
面向对象
「模块化」-> 「对象」
「封装」:分隔和隐藏工作的完成方式
$this / self / parent / const
get_ / set_
__construct()
UML:类、属性、方法、继承、可见性、抽象类、接口
# phpdoc
pear install phpdoc/phpdoc
phpdoc -f HelloWorld.php -t docs
phpdoc -d . -t docs
继承 instanceof
重写 final
抽象 abstract
接口 interface
clone:默认为引用
traits
类型提示 type hinting
命名空间 namespace
设计模式
- 单例模式 singleton pattern:DB、Config
- 工厂模式 Factory:不确定对象类型、抽象类派生多个不同子类
- 组合模式 composite pattern:一个对象可能由一组实体组合
- 策略模式 strategy pattern:行为
内置
异常 Exception:扩展、自定义
PDO
SPL:文件处理、迭代器、数据结构、autoload
网络编程、服务器
fopen()
fsockopen()
# ip
curl http://freegeoip.net/json/116.226.181.231
maxmind # ip DB
gethostbyaddr()
gethostbynamel()
cURL
web service: header() / json_decode()
// zip
$fp = gzopen('filename.gz', 'wb5'); # 打开方式、进一步修饰打开方式、压缩等级
// MCrypt -> 见 manual,建议不要使用
二进制文件有可以进行非线性读写的优势
服务器输出压缩数据,浏览器自动解压
cron 任务
运行服务器端命令:exec() / system() / passthru() / shell_exec() / 反引号
调试、测试、性能
xdebug
TDD、phpunit
xdebug + webgrind
网友评论