一、PHP
1.1 运算符的短路逻辑与 &&
逻辑与 正好和逻辑或相反,不过它也存在短路情况,看下面的例子:
上面的例子中,出现了$b没定义的情况,原因是 $a==200为假,而逻辑与(&&)只有两边同时为真时,才会是真。所以,当$a==200为假时,没必要再进行后面的判断,这就导致了$b出现未定义的情况。修改程序及运行结果如下:
注:按位与(&)不存在短路。
应用:
上面代码利用了逻辑或的特性,当文件存在时,fopen(‘xq.txt’,’r’)为真,就不执行后面的了。当文件不存在时,就执行die(‘文件不存在’);这句话使程序停在这个地方,不往下走了,避免内存消耗。
1.2 php中流程控制
流程控制主要有:if,switch;
switch语句的使用范围是当要判断的例子是有限可列个或能准确的用行分类时使用,例子如下:
注:每个case结束,必须有break;如果给出的值不在case中,将执行默认(default)语句。不加break的情况如下:
上述结果说明,不加break,它也会先判断case值,从判断的值处开始,往下全部执行!
1.3循环语句
while,for,when
为了避免死循环的发生,php.ini中定义了最大的执行时间120秒,也就是两分钟,自己可以进行修改。
自己可以在php.ini中进行统一设置,也可以在开发过程中,每个项目自己设定时间,用函数:set_time_limit();
例子如下:
我在php.ini中设置最大执行时间5秒,脚本中设置最大执行时间为3秒,运行一个死循环,结果及程序如下:
注:执行了3秒终止了,我们再设一个,在php.ini中设置最大执行时间5秒,在脚本中设置最大执行时间为6秒,运行一个死循环,结果及程序如下:
注:上述程序执行6秒时,终止。通过以上两个例子说明,可以在脚本中设置执行时间,也可以在php.ini中设置最大执行时间,但最终以脚本中设置的时间为准,如果脚本中没设执行时间,则以php.ini中设置的最大执行时间为准。
2016年10月3日星期一