PHP那些瑣碎的知識點

2021-08-01 15:34:29 字數 2548 閱讀 1720

php有很多很奇特、很難記的知識點,我做了一下記錄:

php不會檢查單引號''字串中變數內插或(幾乎)任何轉義序列,所以採用單引號這種方式來定義字串相當簡單快捷。但是,雙引號""則不然,php會檢查字串中的變數或者轉義序列,並輸出變數和轉義序列的值。

$a = "123";

print '$a\t';

print '$a';

輸出:

$a\t$a
如果是雙引號"":

$a = "123";

print "$a\t";

print "$a";

輸出:

123 123
單引號''可以解釋'\\\這倆轉義字元,就這倆!

能使單引號字元盡量使用單引號,單引號的效率比雙引號要高(因為雙引號要先遍歷一遍,判斷裡面有沒有變數,然後再進行操作,而單引號則不需要判斷)。

單引號''和雙引號""都可以用來

這兩都是語句,不是函式;這倆語句的作用都是輸出字串。但是:

echo可以傳入多個引數。而print只有乙個:

echo "123", "123";//輸出123123

print "123", "123";//報錯,只可以寫乙個引數 print "123";

echo無返回值,而print返回值恒為1;

php的八中資料型別,除了陣列array和沒有實現__tostring魔法函式的物件都可以用echo或者print來輸出,並且boolean型別的用echo或者print來輸出,只會顯示1或者不顯示。

echo true; //輸出1

echo false; //什麼都不輸出

php會自動完成字串和數字的轉換,這樣有時候會帶來好處,有時候卻很讓人苦惱。

echo 1 + "2";//輸出3

echo 1 + "a";//輸出1

$a = 1 + "a";試問變數$a的資料型別?

if(is_numeric($a))

else

//最後輸出:是整型

rand()mt_rand()用法完全一致,它倆分別有兩種用法:

//第一種用法:

rand();//產生的隨機數為0到getrandmax()之間

mt_rand();//產生的隨機數為0到mt_getrandmax()之間

//第二種用法:

rand($min, $max);//產生從$min到$max之間的隨機數

mt_rand($min, $max);//產生從$min到$max之間的隨機數

區別:mt_rand()是更好地隨機數生成器,因為它跟rand()相比播下了乙個更好地隨機數種子;而且效能上比rand()快4倍,mt_getrandmax()所表示的數值範圍也更大

bcmath庫很容易使用。將數字作為字串傳入函式,它會將數字的和(或差,積等)作為字串返回。不過,使用bcmath時,對數字所能完成的操作僅限於基本算術運算。

$sum = bcadd("12345678", "87654321");//$sum = "99999999"
gmp函式可以接受整數或者字串作為引數,不過它們更樂意將數字作為資源來傳遞,這實際上是指向數字內部表示的指標。所以與bcmath函式不同,bcmath函式返回字串,而gmp只返回資源。可以將這個資源作為數字傳遞到任何gmp函式。

$four = gmp_add(2, 2);//可以傳入整數

$eight = gmp_add('4', '4');//或字串

$twelve = gmp_add($four, $eight);//或gmp資源

gmp唯一的缺點是,想要用非gmp函式檢視或使用資源時,需要使用gmp_strval()gmp_intval()顯示地進行轉換。

include()require()語句包含並執行指定檔案。這兩結構在包含檔案上完全一樣,唯一的區別是對於錯誤的處理:

換句話說,如果你想在丟失檔案時停止處理頁面,那就別猶豫了,用require()吧。include()就不是這樣,指令碼會繼續執行。

同為陣列合併,但是還是有差別的:

瑣碎知識點

13 反射獲取方法所在的類名稱 system.reflection.methodbase.getcurrentmethod declaringtype 12 try catch finally try catch exception ex finally view code sqliteconnec...

python numpy瑣碎知識點

最近在寫python 和c 的呼叫,在python numpy 矩陣傳入c 的時候出現了一些問題,在此記錄一下 numpy矩陣的資料在記憶體中不一定是連續的,可以用flags這個屬性進行檢視 numpy矩陣的記憶體連續分為 c order 連續和 f order 連續 也就是分別對應這c語言和for...

瑣碎知識點 1

createelement 鏈結中有 號 說明 不用註冊,直接使用。關於英語,英語算是乙個基本的技能,你不會就要去學習,很多技術第一手資料都是英文的,如果你等到別人翻譯好,那獲取就滯後了,那就被動了。因此,我特別鼓勵大家去學習英語,用蹩腳的英語去跟老外交流,不要害羞,他們也是可以理解的,同時我自己也...