PHP将所有数组值转换为字符串

时间:2015-10-23 20:46:20

标签: php arrays laravel casting type-conversion

我的数组有问题。

在旧服务器上,数组中的所有数据都具有良好的类型:字符串是字符串,bool是bool,int是int。

现在服务器更改后,所有数组值都是" cast"串起来。我无法将===与我的整数进行比较,因为它们是"字符串"

在旧服务器上使用laravel dd

This is how it looks,而不是the new one

是否有任何导致此问题的php设置应该修复?

2 个答案:

答案 0 :(得分:0)

查看屏幕截图,看起来发生以下情况。

  • null值更改为空字符串
  • 整数值现在是字符串

<强>数据库

  • 检查数据库中的列类型是否仍然是int而不是varchar?
  • 从PHP 5.3.3开始,有一个名为JSON_NUMERIC_CHECK的json_encode参数被使用了吗?

可能有一些框架已更新并使用带有/不带此参数的json_encode / json_decode。这将导致整数值为字符串。

echo json_encode(array('event_id' => '603'));
echo json_encode(array('event_id' => '603'), JSON_NUMERIC_CHECK);

//and the output:

{"event_id":"603"}
{"event_id":603}

答案 1 :(得分:0)

在laravel上,您可以将字符串转换为整数。例如:

return (int)$your_variable->your_column