【发布时间】:2015-03-11 09:31:57
【问题描述】:
我的数据库的一行有联系人表有字符变化列作为电话,值为 3162e6313358
$return_data = array('phone' => $contact_phone);
echo json_encode($return_data, JSON_NUMERIC_CHECK);
这段代码没有给我任何输出。 我搜索了这个人提供的解决方案,例如 ('phone' => '".$contact_phone."') 这是有效的。 我不想为每个数组元素进行类型转换 但我需要通用解决方案。
谢谢。
【问题讨论】:
-
Json 编码如果失败则返回布尔值。无论如何,如果我使用给定值运行此代码:
Warning: json_encode() [function.json-encode]: double INF does not conform to the JSON spec, encoded as 0 -
在我的系统上,这也没有发出警告,输出只是空白。这是我尝试过的 php -a Interactive shell php > $a = ['a'=>"1", 'b'=>NULL, 'c'=>"3162e6313358"]; php > echo json_encode($a, JSON_NUMERIC_CHECK);
-
数据可以有字母,为什么还需要JSON_NUMERIC_CHECK?
-
@deceze 我说了吗?我使用了具有最一般含义的“数字”。我没有提到任何关于“电话”的事情。 “将字符串转换为 numeric 属性的数字”。由于您提到的原因,电话号码不是数字,即使他们有这个名字;此外,它们不遵循数字的语义:两个电话“数字”相加或相乘是没有意义的。
-
@axiac Quote: “它的用法在代码中隐藏了一个更深层次的问题:你将数字存储为字符串” - 听起来你好像建议将电话号码存储为整数. :)
标签: php json postgresql