0

我在 .application/config/constants.php 中为原始 http post 数据设置常量,如下所示:

define('POST_DATA', json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true));

所以我可以添加从控制器向模型发送常量 POST_DATA 如下:

$data['data'] = $this->logins_model->signup(POST_DATA);

但我收到以下错误...

严重性:通知

消息:使用未定义的常量 POST_DATA - 假定为“POST_DATA”

文件名:控制器/logins.php

但是,当我这样做时,我检查并将发布数据发送到模型工作:

$data['data'] = $this->logins_model->signup(json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true));

关于我做错了什么的任何想法?我是否错误地使用了常量文件?

4

2 回答 2

1

json_decode返回一个数组或对象,PHP 常量不能是数组或对象。只允许标量和空值。

每个HTTP_RAW_POST_DATA请求都会有所不同,不是吗?所以,不要使用常量。只需在需要时将其存储在变量中。

于 2013-04-10T05:07:46.520 回答
1

您不能设置constantarray. json_deocde生成一个数组,因此不会设置常量。

Constants may only evaluate to scalar values

常量的主要目的是做出无法改变的东西。

但是如果你想设置数据,那么你可以serialize将数据设置为常量,当你需要该数据时unserialize,常量值

define('POST_DATA', serialize(json_decode($GLOBALS["HTTP_RAW_POST_DATA"], true)));

$post_data     = unserialize (POST_DATA);
$data['data'] = $this->logins_model->signup($post_data);
于 2013-04-10T05:10:30.687 回答