項(xiàng)目中遇到的小細(xì)節(jié)問(wèn)題,不注意也沒(méi)有發(fā)現(xiàn),今天突然想起來(lái)就在這簡(jiǎn)要的敘述一下 int 和integer的區(qū)別
PHP 7.0+ 里支持了函數(shù)(和方法)的返回值類(lèi)型提示,上述第二種寫(xiě)法在解釋運(yùn)行時(shí)會(huì)觸發(fā)一個(gè) Fatal Error,要求返回值必須是 integer 類(lèi)的一個(gè)實(shí)例:
PHP Fatal error: Uncaught TypeError: Return value of show() must be an instance of integer, integer returned in /home/mingc/practice/demo68.php:12
當(dāng)然,兩者在強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí)效果是一樣的:
$a = '27c'; var_dump((int)$a); // int(27) var_dump((integer)$a); // int(27)
要明確地將一個(gè)值轉(zhuǎn)換為 integer,用 (int) 或 (integer) 強(qiáng)制轉(zhuǎn)換。不過(guò)大多數(shù)情況下都不需要強(qiáng)制轉(zhuǎn)換,因?yàn)楫?dāng)運(yùn)算符,函數(shù)或流程控制需要一個(gè) integer 參數(shù)時(shí),值會(huì)自動(dòng)轉(zhuǎn)換。還可以通過(guò)函數(shù) intval() 來(lái)將一個(gè)值轉(zhuǎn)換成整型。
關(guān)鍵詞: