首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:如何将字符串函数减少1?

PHP:如何将字符串函数减少1?
EN

Stack Overflow用户
提问于 2010-10-12 04:47:28
回答 5查看 537关注 0票数 0

我使用PHP访问外部API。

当调用一个特定的API方法时,它会返回一个比我想要显示的值高的数字。

但是,API将整数返回为字符串,而不是整数。

问题:如何将返回的字符串减少1,因为它不是整数

本质上,我想做下面的伪代码(这不起作用):

代码语言:javascript
复制
echo external_api() -1; // problem is, this returns "X -1" where "X" is an integer but returned as a strong
EN

回答 5

Stack Overflow用户

发布于 2010-10-12 06:06:10

external_api()函数回显整数(9)并返回NULL。因此,当您试图从中减去时,您会得到如下内容:

代码语言:javascript
复制
function external_api() {echo "9";}
echo external_api() - 1;

...which会产生9-1

谜团解开了。

现在,修复它。如果你不能改变外部api..。

代码语言:javascript
复制
ob_start();
external_api();
$output = ob_get_clean();
echo ((int)$output) - 1;

下一次,发布everything,这样我们就不会在很长一段时间内抓狂了。

票数 7
EN

Stack Overflow用户

发布于 2010-10-12 04:50:19

可以将返回值转换为整数:

代码语言:javascript
复制
echo ((int) external_api()) - 1; 

** 编辑 **

这是我运行的代码

代码语言:javascript
复制
function external_api() {
    return "100";
}

echo ((int) external_api()) - 1; 

输出为99。如果这不适用于您,则该函数将不会返回正确的值。否则,请详细说明,因为这没有任何意义。

此外,正如deceze所指出的,即使没有强制转换,PHP也足够聪明,可以在数学运算符上完成它:

代码语言:javascript
复制
echo external_api() - 1; 

也会输出99,所以很明显,在这个神秘的函数中有一些事情发生了,因为问题不在你说的地方。

BTW"2" -1的结果;永远不会成为"2 -1",因为-甚至不是字符串运算符。PHP中唯一的字符串运算符是用于连接的."2" + 1 = 3;,其中"2" . 1 = "21"

票数 2
EN

Stack Overflow用户

发布于 2010-10-12 04:51:12

如果函数返回一个字符串,那么您的代码实际上应该能工作。不过,您可以尝试将值转换为整数:

代码语言:javascript
复制
echo (int)external_api() - 1;

编辑

听起来,在减少数据之前,您可能需要使用preg_replace对数据进行净化。试试这个:

代码语言:javascript
复制
echo preg_replace('/[^0-9]/', '', external_api()) - 1;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3911775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档