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で質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) 【関数】選択した文字列にしたがって、文字を選んで表示する 2 2023/07/13 22:44
- Ruby プログラミング 3 2023/06/09 14:30
- Excel(エクセル) エクセルのマイナス表示 3 2022/03/28 16:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- その他(プログラミング・Web制作) ポケコンの文字移動が上手くできない… 3 2022/04/25 01:34
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Excel(エクセル) 文字列を数式として変換する事はできますか? 6 2022/06/23 10:38
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPから別のHTML(PHP)へリン...
-
PHP内、ボタン押下と同時にリロ...
-
3の倍数の和
-
セッション管理
-
PHP postgres でロールバック...
-
関数の前にアットマークが付く場合
-
phpの処理中に画面表示ををする...
-
(if/elseif)と(switch文)の使い...
-
onedrive にexcelファイルをア...
-
別ファイルの変数を呼び出した...
-
フォントの色を変えるには?
-
.phpと.incファイルの違いはな...
-
「@$変数」の「@の意味は?」
-
【file_exists】ファイルが存在...
-
$_SESSION 有効期限をブラウザ...
-
stat failed
-
2つの画像ファイルが異なるファ...
-
PHPで新しいウインドウで開く命...
-
CFileDialogの最初のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのif文でその処理を途中で抜...
-
PHPが処理を途中でやめる。原因...
-
phpの処理中に画面表示ををする...
-
関数の前にアットマークが付く場合
-
PHPで偶数と奇数を判断するには
-
System関数で変数を受け渡す方法
-
symfonyのCriteriaで実行すると...
-
条件演算子
-
インスタンス化に伴うメモリ消...
-
PHPExcel処理速度が遅い
-
入れ子になっているHTMLタグも...
-
文字列の10+10を20と表示したい
-
ページの一部だけリロード
-
JSPでevalを使いたい
-
Cronで同じ処理を複数同時に実...
-
携帯サイトの構築について
-
PHP内、ボタン押下と同時にリロ...
-
◆バックエンド処理の終了を知り...
-
csvファイルの読込みとソート
-
APIで出てきたXMLをPHPで表示さ...
おすすめ情報