質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

725閲覧

加算子と減算子について

beginner_39

総合スコア77

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/01/29 06:44

編集2018/01/29 06:46

phpでは1をプラスしていくとき、
$変数 += 1;または++$変数などで表示させますが、
中には$変数++(後置加算子または後置減算子)があります。

同じ「加える(または減らす)」意味合いなのに、なぜ後置する方法があるのでしょうか?

教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

$i++;++$i;というように単体で書いた場合、「変数に1を加える」という同じ意味になります。

ただ、他の式の途中に書いた場合には意味が違ってきます。

php

1$i = 3; 2$a = $i++; 3echo($a); // 1を足す前の「3」が取れる 4 5$j = 3; 6$b = ++$j; 7echo($b); // 1を足した後の「4」が取れる

もっとも、インクリメントを式中に混ぜ込むと読解がややこしいので、別の行でインクリメントだけしたほうが読みやすいとは思います。

投稿2018/01/29 06:51

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beginner_39

2018/01/29 07:16 編集

ご回答ありがとうございます。勉強になります! 試しに、下記のようなコードを作ってみました。 ※※※※※※※ $i = 3; print $i++; print $i; ※※※※※※※ そうすると、 $i++では数字の3が、$iでは4が表示されました。 先に数字が表示されてその後に数字がプラスされた値が表示されました。 なんとなく意味はわかったんですが、 使い所ある?意味あるのかな? って率直に思いました。 どんな場面で利用されるのでしょうか?
beginner_39

2018/01/29 07:28

ご回答ありがとうございます。 phpで簡単なループを(初心者向け)回したことが何回かあるので、なんとなく理解しました。 ※すみません。。URLまではっていただきましたが、まだ自分には理解できない記述例でした。 お時間を割いていただき、誠にありがとうございます。
guest

0

前置と後置では式の値が異なってきます。あくまでも内部的な動きとして書けば、こうなります。
$val++ 加算前の値が式の値になる

PHP

1$tmp = $val; 2$val = $val + 1; 3return $tmp;

++$val 加算後の値が式の値になる

PHP

1$val = $val + 1; 2return $val;

試されたコードでいうと、

PHP

1$i = 3; 2print $i++; // $i++ という式の値は(加算前が評価されるので)3になるので出力は3。その後+1されて$iは4になる 3print $i;

式の値を使わないのであればどちらを使っても構わないのですが、maisumakun さんも書かれたように式の途中で出てくると、値が異なってくるので扱いに注意せねばならないのです。

投稿2018/01/29 07:40

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beginner_39

2018/02/13 01:39

お返事が大変おそくなってしまい、申し訳ございません。 ご回答していただき誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問