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

解析順序の問題と引用の問題が組み合わさっていると思います。

出力で PHP を処理しているとします。

  1. プラグインが実行されます
  2. 次に、通常の EE コード
  3. 次にPHP

引用の問題を認識したデレクは、次のように提案しました。

$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 に答える
0

私の推測では、変数を引用する必要があると思います:

$custinfo = "{exp:user_loggedin}";

于 2012-07-23T16:30:03.503 に答える