优化总结 待完善...
sql优化
1.变量在外部解析通常要比在sql内部解析要快
$name = 1;
$sql = "SELECT * FROM user WHERE name = '$name'"; $sql = 'SELECT * FROM user WHERE name = \''.$name.'\'';
字符串优化
1.包裹字符串单引号与双引号的区别
通常来说,单引号是不解析变量的,而双引号是解析变量的,但是对于我们平常对字符串的应用来说,单引号和双引号是没什么区别的,其实不是,服务器在解析字符串的时候,单引号的字符串通常解析的要比双引号的字符串要快,因为双引号需要读取判断字符串内是否存在着变量,而单引号则直接输出
//不判断直接输出
$a = 'a$aa';
$a 值为 a$aa;
//判断是否存在变量解析再输出
$b = "bbb'{$a}'b";
$b 值为 bbb'a$aa'b;
$c = "c$a c";
$c 值为 ca$aac;
3. 多个else if优化
一般来说,在进行逻辑运算的时候,经常会进行大量的判断,从而会写出很多if(){}else if(){}else if......,非常的折磨人
经过多次折磨,个人总结出两种优化的方法
1. if判断有一个不可忽视的特点,就是当条件一个条件成立时,下面的判断将不会进行下去,所以说,我们可以把判断成功概率高的数据放再上面,尽量让其不用执行太多的判断.
2. switch...case... ,相信这个判断大家都用过或看过,switch..case最大的特点就是效率,因为switch...case会直接生成跳转表,拿到值直接跳转到对应的case,适合执行多重循环判断,但是switch...case也有一个缺陷,就是判断的数据仅限于(整形、浮点型或字符串)
$c = c;
switch ($c)
{
case a:
//如果 $c=a,此处代码将执行;
echo '$c等于a';
break;
case b:
//如果 $c=b,此处代码将执行;
echo '$c等于b';
break;
default:
//如果 $c 既不等于 a 也不等于 b,此处代码将执行;
echo '$c不等于a也不等于b';
}