性能优化
算法上的优化
多用内置函数,少用魔法函数、错误抑制符、正则
开启opcache
缓冲区
消息队列异步 (发邮件等功能)
少操作文件、网络请求
连接池
用到的时候再new,用完了及时销毁
访问数组arr[name],会先把name当作常量,慢
break 2; continue 2;
require在脚本执行前引入,文件不存在则报错
include在执行到的时候引入,文件不存在发出警告
header(\'content-type:text/html; charset=utf-8\'); 以什么编码方式解析什么类型的文档
header(\'Location:http...\'); 跳转
function fun(){ static $i=0; }
cgi (Common Gateway Interface) 通用网关接口 服务器和应用程序通信的协议
缺点:不停的启动和销毁
fast-cgi 是个协议 , 将cgi程序保持在内存中
php-cgi 实现了cgi协议
php-fpm 实现了fast-cgi 用来管理php-cgi
类复制,等号传递的是引用,传值需要用clone
设置发出数据的编码:Content-Type包含charset=utf-8,可在php.ini里配置default_encoding=utf-8
或用header()函数
设置接收数据的编码:一般地,生成表单页面时使用一个编码,浏览器会使用同样的编码发回数据。
或者在<form>里包含accept-charset="utf-8" (并不是所有浏览器都支持)
类型约束:
函数的参数可以指定必须为对象(在函数原型里面指定类的名字),接口,数组或者 callable。
如果使用null作为参数的默认值,在调用函数的时候依然可以使用null作为实参。
如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。
类型约束不能用于标量类型如 int 或 string。Traits 也不允许。
<?php echo 1; ?>
<script language="php"> echo 1; </script>
<? echo 1; ?>
<% echo 1; %>
<?= "abc" ?>
<%= "abc" %>
注释:// # /*..*/
比较操作符 <> <=> ??
字符串、null支持自增,不支持自减,float支持自增和自减(1)
反引号 echo `ipconfig` 等价于 shell_exec(\'ipconfig\');
换行符:echo $username, PHP_EOL;
json必须用双引号
jquery ajax
$.ajax({
\'url\':\'abc.php\',
\'data\':{\'username\':\'zhangsan\', \'age\':18},
\'success\':function(data){ ... },
\'type\':\'post\', //不写type 默认为get
});
国际化和本地化
图片:建立多个文件夹