0.php中,$a;若只定义变量而不赋值,则内存中不会给它分配内存;notice和fatal warming的区别,前者在内存中跳过不执行,执行下面的,而后者是致命错误,程序直接跳出,完全不再执行。
1.可变变量 可变变量允许动态的改变一个变量的名称。即用一个变量的值作为另一个变量的名称。
varname=′tireqty′;
varname=5;等价于:
tireqty = 5;
2.操作符。
恒等于 ===
错误抑制操作符 @
执行操作符
类型操作符 instanceof
phpinfo(); //查看PHP信息
3.查找特定的名词 验证邮件地址 ^[a-zA-Z0-9_-.]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$
4.函数调用不区分大小写。函数的命名惯例:所有都用小写字母。但变量名是区分大小写的。PHP不支持函数重载。$name();—可变函数。php中属性和方法的访问默认是public;
5.PHP应用中,用isset() 替换 strlen(),isset比strlen执行速度快,原因是isset是语言结构,而strlen是一个函数。
1)语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。函数:由代码块组成的,可以复用。
2)语言结构为什么比函数快原因是在PHP中,函数都要先被PHP解析器分解成语言结构,所以有此可见,函数比语言结构多了一层解析器解析。这样就能比较好的理解为什么语言结构比函数快了。
3)语言结构和函数的不同:语言结构比对应功能的函数快;语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节;语言结构不能在配置项(php.ini)中禁用,函数则可以;语言结构不能被用做回调函数。
4)语言结构列表:
echo()
print(),没错,这是一个语言结构
die()
isset()
unset()
include(),没有include_once()
require(),没有require_once()
array()
list()
empty()
6.如果不需要正则表达式的功能,可以选择使用更快(也更简单)的替代函数如 explode() 或 str_split() 。split()函数对大小写敏感,如果在匹配字母字符时忽略大小写的区别,请使用用法相同的 spliti() 函数。
7.php项目经常会遇到在代码中引用其他页面的问题,所以在项目中对路径设置全局变量一定要在公共入口处设置好路径的全局变量,这样能保证统一的路径格式
8.引用其他页面最好采用require_once,这样如果引用路径出错,程序会直接报错,这样就保证了程序的严谨性,如果用include_once会兼容错误,对项目可能会造成意外伤害
9.php作为解释性语言,与编译型语言java,c++有性能差距,怎么提高PHP效率?
10.能使用单引号串尽量使用单引号串单引号串效率要高于双引号串
11.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
12.使用选择分支语句(译注:即switch case)好于使用多个if,else if语句
13.数据库连接当使用完毕时应关掉,不要用长连接
14.foreach效率更高,尽量用foreach代替while和for循环;在可以用PHP内部字符串操作函数的情况下,不要用正则表达式;循环内部不要声明变量,尤其是大变量:对象;尽量采用大量的PHP内置函数
15.除非脚本可以缓存,否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能,以免除编译开销。
16.Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码 (OP code)的缓存很有用,使得脚本不必为每个请求做重新编译
17.对global变量,应该用完就unset()掉;
18.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo str1, str2。
19.尽量避免使用__get,__set,__autoload(这样会多一次函数引用,除了__autoload在一些开发模式中的必须的,。__get和__set应该少用)
20.最好不用@,用@掩盖错误会降低脚本运行速度;
21. row[′id′]比 row[id]速度快7倍建议养成数组键加引号的习惯;
22.在子类里方法的性能优于在基类中;应用ZendOptimizer,一般情况下,执行使用ZO的php程序比不使用的要快40%到100%;