1

在我使用的插件中:

$this->return_data = json_encode(array('loggedin' => $LoggedIn, 'Cust_ID' => $Participant_ID));

在模板中我这样称呼它

$custinfo = {exp:user_loggedin};

它像这样返回它:

$custinfo = {"loggedin":"no","Cust_ID":-1};

我得到这个错误:

PHP Parse error:  syntax error, unexpected '{' in expressionengine/libraries/Functions.php(642) : eval()'d code on line 656

如果我使用

$custinfo = json_decode({exp:user_loggedin})

我收到此错误:

PHP Parse error:  syntax error, unexpected '{', expecting ')' in expressionengine/libraries/Functions.php(642) : eval()'d code on line 656

有任何想法吗??

4

2 回答 2

0

我的猜测是你需要引用你的变量:

$custinfo = "{exp:user_loggedin}";

于 2012-07-23T16:30:03.503 回答
0

我认为您同时遇到了解析顺序问题和引用问题。

假设您在输出上处理 PHP。

  1. 插件将运行
  2. 然后是常规的EE代码
  3. 然后 PHP

Derek 认识到报价问题,建议:

$custinfo = "{exp:user_loggedin}";

但这不会在第 3 阶段转化为以下代码吗?

$custinfo = "{"loggedin":"no","Cust_ID":-1}";

对您来说,这看起来像是有效的 PHP 代码吗?对我没有。

您要么必须转义这些引号,要么使用 HEREDOC 或其他东西……</p>

$custinfo = <<<HEREDOC
{"loggedin":"no","Cust_ID":-1}
HEREDOC;
于 2012-07-23T19:50:54.890 回答