我有一个数据库(非常受控的输入),它们会在它们之前和之后都有下划线.它们的存储方式如下:
_51_ _356_
它们不会以任何其他格式存储,但有时我需要从中获取数字.我选择使用其中之一
$x = filter_var($myNumber, FILTER_SANITIZE_NUMBER_INT);
要么
$y = preg_replace("/[^0-9]/","",$myNumber);
我不确定后端2之间的细微差别,但它们都产生了我需要的东西(我想是的,无论如何),所以对我来说无关紧要.使用这些选项有哪些优缺点? (例如,是否有人使用我可能需要知道的数组或其他奇怪的东西?一个使用太多资源?)
解决方法:
嗯,你的情况没有太大区别.我认为preg_replace在资源方面更昂贵,因为它必须解析正则表达式模式.
或者你可以使用trim:
echo trim('_12_', '_');
它将删除两边的’_’,我认为这是最可读的方式.