84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
是如何没有定义我就定义吗? 类似于 C语言中的if define 吗?? 要是在PHP 手册里面能找到就好了。。 比如:defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
人生最曼妙的风景,竟是内心的淡定与从容!
这里的知识点还有一个“短路求值”
PHP或C或很多现代语言都有这个特性,在计算逻辑或表达式的时候,计算左侧如果是true,那么就不再计算右侧,直接返回true,所以A or B;可以达到if(!A) B;的效果
A or B;
if(!A) B;
同理,计算逻辑与的时候,如果左侧是false,那么同样会发生短路,不计算右侧直接返回false A and B;类似if(A) B;
A and B;
if(A) B;
短路求值在语意上比较接近英文,又回避了“if必加花括号”带来的视觉污染(?),所以还算比较通行的做法(虽然严格意义上来说不算是好习惯)
http://php.net/manual/zh/function.defined.phphttp://php.net/manual/zh/function.define.php
=w= 手册上有的...defined() 检测某个常量的名称是否存在. 如果已定义返回 true 未定义返回 false
defined('THINK_PATH') or define('THINK_PATH', dirname(FILE).'/');
先检查常量 THINK_PATH 是否被定义, 如果没有被定义,就定义一个常量 THINK_PATH 值dirname(FILE).'/'
类似于if(!A){B}的语句,但是书写成A or B 的话更加的简介,如果定义了THINK_PATH,那么条件为真,就不走后面,如果没有定义THINK_PATH就会走后面的语句。
这里的知识点还有一个“短路求值”
PHP或C或很多现代语言都有这个特性,在计算逻辑或表达式的时候,计算左侧如果是true,那么就不再计算右侧,直接返回true,所以
A or B;
可以达到if(!A) B;
的效果同理,计算逻辑与的时候,如果左侧是false,那么同样会发生短路,不计算右侧直接返回false
A and B;
类似if(A) B;
短路求值在语意上比较接近英文,又回避了“if必加花括号”带来的视觉污染(?),所以还算比较通行的做法(虽然严格意义上来说不算是好习惯)
http://php.net/manual/zh/function.defined.php
http://php.net/manual/zh/function.define.php
=w= 手册上有的...defined() 检测某个常量的名称是否存在. 如果已定义返回 true 未定义返回 false
defined('THINK_PATH') or define('THINK_PATH', dirname(FILE).'/');
先检查常量 THINK_PATH 是否被定义, 如果没有被定义,就定义一个常量 THINK_PATH 值dirname(FILE).'/'
类似于if(!A){B}的语句,但是书写成A or B 的话更加的简介,如果定义了THINK_PATH,那么条件为真,就不走后面,如果没有定义THINK_PATH就会走后面的语句。