cast integer php - 从字符串中删除符号

时间:2011-06-14 15:42:31

标签: php casting

我有这个代码,我创建一个cast来删除符号

    $t = "€2000";
    $venc = (int)$t;
    echo $venc; // actually echo is 0 and i want 2000 (remove symbol)

输出为0而不是2000,因此,代码无法正常工作。

(int)$t;不回应2000的原因是什么?

感谢

4 个答案:

答案 0 :(得分:8)

施法例程不会删除无效字符,但是从头开始并在达到第一个无效字符时停止然后将其转换为数字,在您的情况下,欧元符号无效并且它是第一个字符,因此结果数字为0。 / p>

检查http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion

您可以尝试(int)preg_replace('/\D/ui','',$t);

但是如果你正在处理货币,你不应该忘记它们不是整数而是浮动

(float)preg_replace('/[^0-9\.]/ui','',$t);

答案 1 :(得分:4)

这可以帮到你

$t = preg_replace('/[^0-9]/i', '','€2000');
$venc = (int)$t;
echo $venc;

答案 2 :(得分:0)

使用substr

   echo substr($t,3);  // returns "2000"

答案 3 :(得分:0)

$t = "€2000";
$venc = (int)substr($t,1);
echo $venc;