PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Q&A
解決済
2回答
15730閲覧
総合スコア16
0グッド
1クリップ
投稿2018/07/18 06:29
0
1
phpで文字列の結合をするときに{}を使いますが、変数の足し算をすると、エラーが出てしまいます。
$a = 10 $b = 15
エラーになるケース↓↓
echo "あなたのスコアは{$a + $b}です"
あくまで中括弧を使う条件は外さないまま、変数の足し算を行うのはどのようにしたらよいのでしょうか? 調べても調べても全く出てこないのですが、そのようなやり方はないのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
早々にベストアンサーが決まってしまいましたが、書きかけたので投稿しておきます。
参考 PHP 文字列リテラルにおける変数展開ノ全テ
演算はできないと思われます(上記リンク内code.6)
別の手段として。
1.あらかじめ計算しておく
PHP1$c = $a + $b; 2echo "あなたのスコアは{$c}です";
PHP
1$c = $a + $b; 2echo "あなたのスコアは{$c}です";
2.関数呼び出しにする(上記リンク内code.7)
PHP1$f = function($a,$b) { return $a + $b; }; 2$a = 10; 3$b = 20; 4echo "あなたのスコアは{$f($a,$b)}です";
1$f = function($a,$b) { return $a + $b; }; 2$a = 10; 3$b = 20; 4echo "あなたのスコアは{$f($a,$b)}です";
ここからは中括弧縛りではありません。
3.分割する
PHP1echo "あなたのスコアは" . ($a + $b) . "です";
1echo "あなたのスコアは" . ($a + $b) . "です";
4.echoを使わない
PHP1printf("あなたのスコアは%dです", $a + $b);
1printf("あなたのスコアは%dです", $a + $b);
投稿2018/07/18 06:47
総合スコア17002
回答へのコメント
2018/07/18 06:49
2018/07/18 06:51
ベストアンサー
phpで文字列の結合をするときに{}を使いますが
違います。 {}は「ある1つの変数を変数として区別する」ものなので、その中で計算を行うのは無理です。 本来は前後に英数字が続く場合に区別するために利用します。
php1echo "test{$test}test";
php
1echo "test{$test}test";
外に出してはだめなのでしょうか。
php1$sum = $a + $b; 2echo "あなたのスコアは{$sum}です";
1$sum = $a + $b; 2echo "あなたのスコアは{$sum}です";
基本的にechoは「文字列を出力する機能」なので、そこで計算を行うのはコードの可読性の観点から微妙です。 あえてその中で計算を行うまでもないでしょう。
どうしてもと言うのでしたら下記のようには書けますが。
php1echo "あなたのスコアは".($a + $b)."です";
1echo "あなたのスコアは".($a + $b)."です";
投稿2018/07/18 06:38
総合スコア80888
2018/07/18 06:42
2018/07/18 06:44 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
文字列の中に変数の足し算をいれたいれた
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/18 06:49
2018/07/18 06:51