1. 程式人生 > >PHP菜鳥遇到的問題與解決方案

PHP菜鳥遇到的問題與解決方案

PHP中isset和empty的區別

PHP的isset()函式 一般用來檢測變數是否設定
格式:bool isset ( mixed var [, mixed var [, ...]] )

功能:檢測變數是否設定

返回值:boolean

若變數不存在則返回 FALSE
若變數存在且其值為NULL,也返回 FALSE
若變數存在且值不為NULL,則返回 TURE
同時檢查多個變數時,每個單項都符合上一條要求時才返回 TRUE,否則結果為 FALSE

PHP的empty()函式 判斷值為否為空

格式:bool empty ( mixed var )

功能:檢查一個變數是否為空

返回值: boolean

若變數不存在則返回 TRUE
若變數存在且其值為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的物件,則返回 TURE
若變數存在且值不為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的物件,則返回 FALSE

date報錯及解決方案

在用PHP5.3以上的PHP版本時,只要是涉及時間的會報一個 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/apache/htdocs/index.php on line 2
實際上,從 PHP 5.1.0 ,當對使用date()等函式時,如果timezone設定不正確,在每一次呼叫時間函式時,都會產生E_NOTICE 或者 E_WARNING 資訊。而又在php5.1.0中,date.timezone這個選項,預設情況下是關閉的,無論用什麼php命令都是格林威治標準時間,但是PHP5.3中好像如果沒有設定也會強行丟擲了這個錯誤的,解決此問題,只要本地化一下,就行了。 以下是三種方法(任選一種都行): 一、在頁頭使用date_default_timezone_set()設定 date_default_timezone_set('PRC'); //東八時區 echo date('Y-m-d H:i:s');
  二、在頁頭使用 ini_set('date.timezone','Asia/Shanghai');
  三、修改php.ini。開啟php5.ini查詢date.timezone 去掉前面的分號修改成為:date.timezone =PRC
重啟http服務(如apache2或iis等)即可。  XXX可以任意正確的值。對於我們國內來說:可以為以下值:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北),還有新加坡:Asia/Singapore,當然PRC也行。

PHP中幾個輸出語句的區別

echo(): 可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結構(language construct),而並不是真正的函式,因此不能作為表示式的一部分使用。
print(): 函式print()列印一個值(它的引數),如果字串成功顯示則返回true,否則返回false。
print_r(): 可以把字串和數字簡單地打印出來,而陣列則以括起來的鍵和值得列表形式顯示,並以Array開頭。但print_r()輸出布林值和NULL的結果沒有意義,因為都是列印"\n"。因此用var_dump()函式更適合除錯。
var_dump(): 判斷一個變數的型別與長度,並輸出變數的數值,如果變數有值輸的是變數的值並回返資料型別。此函式顯示關於一個或多個表示式的結構資訊,包括表示式的型別與值。陣列將遞迴展開值,通過縮排顯示其結構。