ページ 11

スニペットでeval()を使うとエラーが出てしまいます  【解決済み】

Posted: 2014年2月08日(土) 18:40
by Kenny
-----
ご利用のサーバ:heteml
MODXのバージョン: 1.0.12J-r1
PHPのバージョン:5.2.17
MySQLのバージョン:5.6.13-log
ブラウザ:firefox27.0
-----

お世話になります。

スニペットでeval()を使うとエラーが出てしまいます。

スニペットで以下のようなコードを書くと

<?php
$string = "1+2+3+4+5";
echo eval($string);
?>

エラーが以下のように出てしまいます。
Parse error: syntax error, unexpected $end in…

evalが原因だと思うのですが、この様な場合はどうすればよろしいでしょうか。


元々の思惑は、
"1+2+3+4+5"の部分をdittoで出力して演算させようとしておりました。

例えば以下のようにです。

[[ditto出力したものを足す? &allplus=`[[Ditto? $config=`search` &tpl=`チャンク` &parents=`id` &orderBy=`[[ソート]]` &filter=`[[フィルター]]` &depth=`3` &showPublishedOnly=`0`]]`]]

この様なやり方は無茶でしょうか。。
dittoで出力して演算させるというのは、以前からの目標で、いまだに悩んでおります。

よろしくお願いします。

Re: スニペットでeval()を使うとエラーが出てしまいます

Posted: 2014年2月08日(土) 22:42
by yama
echo eval('?>'.$string);
このように書くとどうでしょう?

Re: スニペットでeval()を使うとエラーが出てしまいます

Posted: 2014年2月09日(日) 11:52
by Kenny
yama様

いつもありがとうございます!
evalの使い方を根本的に間違えていたようです。

うまくいきました。

重ね重ねありがとうございました!