php学习
2019-07-16 16:52:47 0 举报
AI智能生成
1
作者其他创作
大纲/内容
语言性质
解释型语言
动态语言
语言基础
数据类型
基础数据类型(php有9种原始数据类型)
标量类型
boolean
integer
float
string
复合类型
array
object
callable
特殊类型
resource
一种特殊变量,保存了到外部资源的一个引用
null
类型转换
强制类型转换
使用 (type)$value
使用对应转换函数 intval()...
隐式类型转换
数字和字符串比较,字符串转换成数字在比较
在进行数学运算的时候,如果一个数是浮点数,那么所有的操作数都被当成浮点数,否则被当做整数
如果比较的两个字符串都是可转换成数值的字符串(纯数字字符串或者科学计数法的字符串),字符串转换成数字在比较
伪类型
用于在文档中指明参数可用的类型和值
php中的伪类型
mixed
说明一个参数可以接受多种不同的类型,比如 gettype() 的参数
number
说明参数可以是 interger 和 float
callback
等同于callable
array|object
既可以是数组也可以是object
void
无返回值,或者代表参数列表为空
语法
流程控制
函数
类
...
错误/异常处理
错误处理
错误类型
https://www.php.net/manual/zh/errorfunc.constants.php
错误处理相关php.ini配置
error_reporting:设置哪种错误需要报告
display_errors:不会再标准输出中输出错误
log_errors、error_log:设置是否需要记录错误,记录到哪里
默认情况下,php的错误处理逻辑是将错误信息输出的标准输出,可以通过 set_error_handler 设置自己的错误处理逻辑,可以给每种错误级别设置不同的错误处理函数,但是每种错误级别只能设置一个错误处理函数
异常处理
异常只能被手动抛出
异常必须被捕获,否则会引起一个致命错误
可以通过 set_exception_handler 设置自己的异常处理函数,来处理没有被捕获的异常
php7之后做的改动
添加了Throwable接口,和Error类,Error和Exception均实现了Throwable接口;
Throwable 类型均可被 try...catch 捕获;
大多数错误被作为 Error 抛出
Throwable 类型均可被 try...catch 捕获;
大多数错误被作为 Error 抛出
坑
循环引用
$a = [1,2,2,3];
echo json_encode(array_unique($a));
echo json_encode(array_unique($a));
var_dump(array_merge([1,2,3], false));
md5('240610708') == md5('QNKCDZO')
依赖管理
使用组件
1、查找组件
在 https://packagist.org/ 查找或者 composer search
2、添加组件
在 composer.json 添加执行 composer update 或者直接composer require 指定包
版本约束
http://note.youdao.com/noteshare?id=7b601ae9b32321e93fa53af34e4ddc6d
实现自己的组件
1、建立git仓库
2、定义composer.json文件
3、发布到包管理中心
贝壳的组件库
http://packagist.lianjia.com/
单元测试
好处
提升代码稳定性
方便后续升级回归,节省时间
让项目更加工程化,更加专业
phpunit
性能分析
xhprof
xhprof 是 facebook 开源的性能分析工具
无侵入安装 xhprof :http://wiki.lianjia.com/pages/viewpage.action?pageId=36438031
指标说明
Calls:方法被调用的次数
Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)
Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)
其他
phpbrew
phpdoc
psr
收藏
0 条评论
下一页