84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
是如何没有定义我就定义吗? 类似于 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就会走后面的语句。