我需要檢查兩個字符串(數字)是否相同。但是,如果其中一個字符串有一個前導零,那麼所有的賭注都關閉 - 它說,他們是平等的:比較帶前導零的字符串
$hospitalno1 = "64583";
$hospitalno2 = "064583";
if ($hospitalno1 <> $hospitalno2){
echo "Different";
}
我怎麼能這兩個變量比較字符串而不是數字?
我需要檢查兩個字符串(數字)是否相同。但是,如果其中一個字符串有一個前導零,那麼所有的賭注都關閉 - 它說,他們是平等的:比較帶前導零的字符串
$hospitalno1 = "64583";
$hospitalno2 = "064583";
if ($hospitalno1 <> $hospitalno2){
echo "Different";
}
我怎麼能這兩個變量比較字符串而不是數字?
它們轉換成int
:
$hospitalno1 = "64583";
$hospitalno2 = "064583";
if ((int)$hospitalno1 != (int)$hospitalno2){
echo "Different";
}
但提防 「這個字符串」 將成爲0
,所以加is_int()
之前轉換。
而不是<>
你應該使用!=
儘管前者將在PHP中工作,後者是跨語言標準。
如果我正確理解你的問題,你不希望字符串被打亂。
<> type juggles to match types before comparison,
causing your strings to be ints
!== is a comparitor that doesn't type juggle before comparison
這裏有一個比較運營商綱要: http://php.net/manual/en/language.operators.comparison.php
只需使用:
<?php
$hospitalno1 = "64583";
$hospitalno2 = "064583";
if ($hospitalno1 !== $hospitalno2){
echo "Different";
}
else
{
echo "same" ;
}
?>
的!==
會做嚴格的數據類型+價值進行檢查,如果有什麼不同的是將提醒。
非常感謝 - 我從來沒有意識到<>和!==之間的區別。 – Crookers
你只需要利用!==
,不會忽略鍵入否則類型會被忽略
$hospitalno1 = "64583";
$hospitalno2 = "064583";
if ($hospitalno1 !== $hospitalno2){
echo "Diffrent";
}
你非常接近。 與另一串字符只需預先將它們連接起來,a
,-
,隨便什麼都行
$hospitalno1 = '64583';
$hospitalno1 = 'a-'. $hospitalno1;
$hospitalno2 = '064583';
$hospitalno2 = 'a-'. $hospitalno2;
if ($hospitalno1 <> $hospitalno2){
echo "Different";
}
請儘量將
<?php
$hospitalno1 = (string)"64583";
$hospitalno2 = (string)"064583";
if ($hospitalno1 !== $hospitalno2){
echo "Different";
}
?>
我的PHP代碼鏈接>>Code
許多該鏈接的感謝 - 它確實有幫助 – Crookers