如何使sEcho
的响应结果变为非零?
{"sEcho": 0,
我一直在使用这段代码,但结果仍为零..
$sOutput .= '"sEcho": '.intval($_POST['sEcho']).', ';
答案 0 :(得分:0)
好的,是时候把它提升到答案了。
$sOutput .= '"sEcho": '.intval(postVar('sEcho')).', ';
当给定参数postVar
时,该行获取函数'sEcho'
的输出,然后获取该结果并通过内置函数intval
运行它。
然后使用.
连接运算符将该整数附加到字符串'"sEcho":'
,然后将其附加到变量$sOutput
intval
将它传递给整数的任何东西都变成了。这就像铸造。几乎任何字符串都变为零。 intval('YOUR FACE IS ON FIRE')
将返回0,intval('')
将返回0,等等。
我不知道postVar
在哪里,但我打算根据provided example code link进行投注,这是$_POST
的一些错误的包装。因此,另一种写的方法可能是:
$sEcho = (int)$_POST['sEcho'];
$sOutput .= '"sEcho": ' . $sEcho . ', ';
底线是传递给intval
的东西变成零。名为“sEcho”的输入很可能不是一个可以变为零的字符串。
这就是零点的来源。
要解决此问题,您需要将某些内容传递给intval
,而这些内容不会变为零。
作为旁注,如果您实际使用的是链接的示例代码,您可能应该知道有问题的代码是完整的,彻底的垃圾。它充满了糟糕的做法,比如持久连接,使用过时的mysql
扩展,JSON字符串的手动组装,以及最恐怖的恐怖,这是一种经过深思熟虑的匈牙利表示法风格。说真的,sEcho是一个被转换为整数的东西?那不应该是iEcho吗?叹息。