因此在php $a = 1234;
和$a = (1234);
都是有效的整数,1234。
我遇到一些第三方代码,我有$a = "(1234)";
(即一个字符串)
正常转换字符串到int不起作用(因为括号)
<?php
$b = (int) $a; // 0
$b = intval($a); // 0
我可以做类似
的事情preg_match('/^\(([\d]+)\)$/', $a, $m);
$b = $m[1];
只是想知道是否有一些巧妙的方法将$ a转换回我错过的整数?
答案 0 :(得分:3)
另外一个选项可以是
$str = "(1234)";
$int = (int) trim($str, '()');
答案 1 :(得分:0)
这将确保如果()
使其成为负数。
$a = '1234';
if (0 !== preg_match('/^\((\d+\))$/', $a, $matches)) {
$b = (int)-$matches[1];
} else {
$b = (int)$a;
}