天天看點

PHP填坑

這裡記錄下最近PHP踩過的坑,很多都是文法性錯誤

(1)函數結尾忘記加;

例如匿名函數

寫了個匿名函數,正常情況應該輸出Tony 你好。但是這裡報錯,顯示

解析錯誤:文法錯誤,在第13行的C:\ PHPTutorial \ WWW \ index.php中出現意外的'$ show'(T_VARIABLE)

找了半天才測試出是函數沒有加;,而錯誤提示不能精準地定位到出錯行

【總結】①函數先寫好形勢,加上;②在報錯行附近找錯誤源

(2)函數忘記傳參

函數規定了參數後就必須傳參,除非參數設定了預設值

(3)送出form表單時,如果action為空,那麼就會送出到目前頁面

(4)①global後可以跟多個變量,例如global $a,$b,$c等等;②global隻能傳遞變量,不能将其變為全局變量

(5)超全局變量$GLOBALS()不僅可以把變量轉為全局變量,還可以進行修改

(6)JAVA,JS,PHP等代碼都是從上到下,逐行讀取的。PHP裡若沒有exit函數,則會讀取完畢

(7)遞歸函數:自己調用自己

(8) 參數的資料類型

 例如,系統内置函數舉例copy()拷貝檔案,兩個參數必須為字元串

(9)echo、print、print_r差別

①echo 是語言結構,不是函數或者方法,使用的時候可以不加括号,多用于單行字元串的輸出。效率我記得是比print()高。

②print() 也是單行輸出,但他是函數,使用時要把字元串做為參數傳給print()函數。有些服務端程式用PHP來寫的,輸出會用到print();而不用echo ; 這個我不太清楚是什麼原因……

③print_r () 可以用來周遊并輸出數組的函數,我一般是在調試程式的過程中用來檢視數組内容的。也可以用來輸出單一的字元串。一般隻在調試程式過程中使用。程式寫好後,要把這東東去掉。

其他解釋:

echo和print都可以做輸出,不同的是,echo不是函數,沒有傳回值,而print是一個函數有傳回值,是以相對而言如果隻是輸出 echo 會更快,而print_r通常用于列印變量的相關資訊,通常在調試中使用。

print 是列印字元串

print_r 則是列印複合類型 如數組 對象

(10)修改php.int配置後無效?

          所有配置修改,都需要重新開機Apache伺服器才會生效。

(11)PHP入口檔案index.php

(12)PHP除了通過php.int配置參數外,還可以通過ini_get()擷取,ini_set()設定參數。不過隻能作用在目前檔案下

 (13)删除和更新MySQL資料時,需要在尾部添加where條件。否則會對整個表單産生影響。

 (14)注意:删除重要資料前要備份

.