是如何沒有定義我就定義嗎?
類似於 C語言中的if define 嗎??
要是在PHP 手冊裡面能找到就好了。。
比如:
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
回複內容:
是如何沒有定義我就定義嗎?
類似於 C語言中的if define 嗎??
要是在PHP 手冊裡面能找到就好了。。
比如:
defined('THINK_PATH') or define('THINK_PATH', dirname(__FILE__).'/');
這裡的知識點還有一個“短路求值”
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就會走後面的語句。