
No.3ベストアンサー
- 回答日時:
<?php
$str = '10+10';
//式作成
$shiki = sprintf('$kekka=%s;',$str);
//式実行
eval($shiki);
//(注意:この時点で、$kekkaに20が入ります。)
//計算の流れを出力
echo $str.'→'.$shiki.'→'.$kekka;
?>
//を忘れていました。
これでコピペで動くかな。
ついでなのでマニュアルリンク。
http://php.net/manual/ja/function.eval.php
丁寧に教えていただきありがとうございます。
evalの使い方を間違えていたようで、
buraruさんの記述でうまくいきました。
ついでにevalの使い方ももう少し練習しようと思います。
ありがとうございました。
No.4
- 回答日時:
単純なはなしreturnすればいいでしょう。
<?php
$str = '10+10';
$kekka= eval("return {$str};");
print $kekka+10;
?>
この回答への補足
ありがとうございました。解決しました。
eval はこのような使い方もするのですね。
evalの使い方を再度勉強しようと思います
No.2
- 回答日時:
evalで試行錯誤されたとの事ですが…
一応evalでの書き方を。
<?php
$str = '10+10';
//式作成
$shiki = sprintf('$kekka=%s;',$str);
//式実行
eval($shiki);
(この時点で、$kekkaに20が入ります。)
//計算の流れを出力
echo $str.'→'.$shiki.'→'.$kekka;
?>
出力結果
10+10→$kekka=10+10;→20
DBから引っ張ってきた文字列も、スクリプト中で宣言した文字列でも同じだと思うので、上で行けるんでは無いでしょうか?
No.1
- 回答日時:
学生時代に実習内容としてやったな。
もっともその時に使った言語はC言語でしたけどね。まず、構文解析の処理を書いて
数字と演算子を分ける処理を書く。
この場合10と+と10って感じに。
後はそれを元に処理を書く。
今回の場合はプラスだけだけどほかに×や÷の処理をしたければ
演算子の優先順入り処理も必要になる。
同プログラム的に処理をすればいいのかは検索すればいろいろなサイトに情報があるしここの文面だけでは説明しきれないので自分で調べてくれ。
早速のアドバイスありがとうございました。
原点に返り、地道に数字と演算子を分ける処理を書くのも有りと
少し考えました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPExcel処理速度が遅い
-
データベースのレコードを入れ...
-
csvファイルの読込みとソート
-
PHP内、ボタン押下と同時にリロ...
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
phpのextension_dirを複数指定...
-
PHP PDOライブラリが読み込まれ...
-
phpでメール送信できません 原...
-
header(Location:~)で$_SESS...
-
<A href ~ と一緒に値を渡すには
-
さくらインターネットでメール...
-
【PHP】tmp_nameの命名規約につ...
-
php4とphp5での数値の取り扱い...
-
テレメールとは?
-
PHPでメールを受信するには?
-
データ送信をボタンを押さずに...
-
PEAR(Image_QRCode)のエラー
-
Apache 2.4でphp-5.3を使いたい...
-
セッションについての設定なの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
リロードの防止法
-
RSSパースに使用する関数・ライ...
-
3の倍数の和
-
Cronで同じ処理を複数同時に実...
-
データベースのレコードを入れ...
-
アクセスクライアントごとにタ...
-
Smartyにて、文字検索
-
phpの処理中に画面表示ををする...
-
プログラム内で処理中断後も継...
-
インスタンス化に伴うメモリ消...
-
条件演算子
-
GETリクエストでURLを渡す時
-
コンストラクタについて
-
csvファイルの読込みとソート
-
includeしたファイルに変数を持...
-
PHPが処理を途中でやめる。原因...
-
PHPで文字列(日本語)の比較
-
PHP postgres でロールバック...
-
入れ子になっているHTMLタグも...
おすすめ情報