[精讚] [會員登入]
2104

[PHP] 判斷文字、數字、文字加數字的方法

幾個PHP數字和文字操作上的小眉角:判斷文字、數字、文字加數字的方法

此文完整連結 http://n.sfs.tw/10455

複製連結 [PHP] 判斷文字、數字、文字加數字的方法@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2016-12-20 01:00:52 最後編修
2016-12-20 00:58:10 By 瘦河馬
 

幾個PHP數字和文字操作上的小眉角

小心字串比對:用錯運算子會出來你不想要的結果。

$a= 12345;
$b= "12345";
$c= "12345abc";

if($a == $b)print "true"; else print "false";  //true
if($a == $c)print "true"; else print "false"; //true 特別注意這個
if($b == $c)print "true"; else print "false";  //false

if($a === $b)print "true"; else print "false";  //false
if($a === $c)print "true"; else print "false";  //false
if($b === $c)print "true"; else print "false";  //false

快速去除掉數字後文字的方法:快速,有效率

上例 $c="12345abc" 要除掉後面的 "abc",不必用什麼麻煩的字串比對,直接使用:
$c *=1; //$c=12345 由字串變成整數類型

$c = (int)$c; //$c=12345

這裡要注意,如果字串一開始不是數字,會變成0:
$d= "def1234";
print $d*1;  //0
print (int)$d;  //0
print is_int($d*1);  //1

POST或GET送來的一定是字串:別用錯比對方法

例如用 index.php?sn=12345 用GET傳入的

// $_GET['sn']=12345;

print "is_int=".is_int($_GET['sn']);  //空 false
print "is_numeric=".is_numeric($_GET['sn']);   //1
print "is_string=".is_string($_GET['sn']);   //1

所以務必注意post或get傳送過來的值,就算是數字,也是數字字串

判斷是文字、數字或是文字帶數字的方法:可以讓一個欄位讓使用者輸入文字或數字

對於數字、文字或是文字帶數字的判斷,需要多一點細心,否則查錯會非常頭大。

假如有這些變數,想要區分他們,該怎麼做?(刮號中為型別)

$a= array("123", 123, 123.45, 0x88, "123abc", "adc123");
 
foreach($a as $it){
  print "$it=". is_numeric($it) . "\n";
  print "$it=". is_int($it) . "\n";
}

結果以表格來表示:

  "123" 123 123.45 0x88 "123abc" "abc123"
is_numeric TRUE TRUE TRUE TRUE FALSE FALSE
is_int FALSE TRUE FALSE TRUE FALSE FALSE

php有二個函數:

is_int:只有整數類型判斷為true,所以"123"為FALSE,特別注意
is_numberic只要是數字構成,都判斷為true

所以可知道,怎麼區分知道 字串是數字,還是數字帶文字(或文字帶數字),就用 is_numeric。


原文 2014-07-11 01:31:37

你可能感興趣的文章

[PHP] 讀取作業系統程式執行結果 PHP讀取作業系統程式執行結果

[PHP] 檢查檔案是否是圖檔 使用getimagesize函數檢查檔案是否是圖檔

[PHP]解決ksort新增的SORT_NATURAL|SORT_FLAG_CASE方法 php>=5.4中ksort函數多了SORT_NATURAL 和 SORT_FLAG_CASE 旗標,對舊版的PHP中要怎麼辦?

[PHP] CodeIgniter 3+pure+smarty安裝及環境設置1/2 PHP framework CodeIgniter 3+ pure CSS +smarty Template Engine的整合

[PHP] 台灣身分證號及檢查程式 台灣身分證號及PHP檢查程式

[CI3] 使用和修改日曆類別 calendar library CI3有一個日曆圖書館 library,可以快速的建立一個日曆,但是想修改讓他更棒

[PHP] 好用的php常數 介紹PHP中 __DIR__, __FILE__, __FUNCTION__, __CLASS__, __METHOD__, __LINE__, __NAMESPACE__等常數

[PHP] 使用FTP PHP 上使用 FTP 的寫法

[PHP] 使用browscap檢查瀏覽器版本 使用PHP內建函數browscap檢查瀏覽器版本

[PHP] 命名空間 namespace及 use PHP >=5.3 開始支援命名空間:namespace

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

[Wildfly10] 發佈war檔 deploy war file onto wildfly10

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會

關閉瀏覽器表單的自動完成autocomplete 什麼是自動完成?就是當我們在網頁的輸入文字欄位中打入文字時,瀏覽器會把曾輸入過歷史記錄中找出來讓我們選擇。

兩次使用InnoDB的慘痛經驗 Mysql 的Innodb引擎雖然好用,但是我得說說我兩次的慘痛經驗,這讓我考慮以後可能不會再使用innodb了