比较字符串与前导零

时间:2017-10-06 05:16:39

标签: php

我需要检查两个字符串(数字)是否相同。但是,如果其中一个字符串的前导零,那么所有的赌注都会关闭 - 它表示它们是相同的:

$hospitalno1 = "64583";                 
$hospitalno2 = "064583";

if ($hospitalno1 <> $hospitalno2){ 
    echo "Different";
} 

如何将这两个变量比作字符串而不是数字?

6 个答案:

答案 0 :(得分:3)

只需使用:

<?php
$hospitalno1 = "64583";                 
$hospitalno2 = "064583";

if ($hospitalno1 !== $hospitalno2){ 
    echo "Different";
} 
else
{
  echo "same"  ;
}

?>

!==将执行严格的数据类型+值检查,并在有任何不同的情况下发出警报。

答案 1 :(得分:0)

将它们投放到int

$hospitalno1 = "64583";                 
$hospitalno2 = "064583";

if ((int)$hospitalno1 != (int)$hospitalno2){ 
    echo "Different";
} 

请注意“此字符串”将变为0,因此请在转换前添加is_int()

除了<>之外,您应该使用!=,尽管前者可以在PHP中使用,后者是跨语言标准。

答案 2 :(得分:0)

如果我正确理解你的问题,你不希望字符串被打字。

<> 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

答案 3 :(得分:0)

你只需要使用不会忽略类型的!==,否则将忽略类型

$hospitalno1 = "64583";                 
$hospitalno2 = "064583";

if ($hospitalno1 !== $hospitalno2){ 
    echo "Diffrent";
}

DEMO

答案 4 :(得分:0)

你非常接近。 只需将它们与另一个字符串a-预先连接起来,任何事都可以做到

$hospitalno1 = '64583';
    $hospitalno1 = 'a-'. $hospitalno1;
$hospitalno2 = '064583';
    $hospitalno2 = 'a-'. $hospitalno2;

if ($hospitalno1 <> $hospitalno2){ 
    echo "Different";
}

答案 5 :(得分:0)

请试试这个

def write_extension(self):

    extension = []
    dtd = ""
    if extension == []:
            extension = extension.extend(self.edids[:])
            print(extension)

我的PHP代码链接&gt;&gt; Code