[模擬問題] PHP8初級 – 複合演算子と加算子/減算子(CTO古庄道明からの出題)

こんにちは。PHP技術者認定機構 CTOの古庄道明です。
今日もPHP8初級試験の模擬問題と解説を紹介します。
以下を解いて出題のイメージと知識を補っていただけると幸いです。

目次

問題

次のコードの実行結果として正しいものはどれか。

$n = 2;
$p = 3;
++$n;
$p *= 2;
$a = "$n, $p";
--$n;
$p *= 3;
$b = "$n, $p";
print $a . ' / ' . $b;

選択肢

選択肢1
3,6 / 1, 9

選択肢2
3, 6 / 2, 18

選択肢3
3,9 / 1, 9

選択肢4
3, 9 / 2, 27

選択肢5
3, 9 / 2, 279

回答と解説

問題は「複合演算子と加算子/減算子について」です。

複合演算子については、まず公式マニュアルを読んでおくとよいでしょう。
https://www.php.net/manual/ja/language.operators.assignment.php
「代入演算子」のページですが、この中に複合演算子についての記述があります。

加算子/減算子についても、まず公式マニュアルを読んでおくとよいでしょう。
https://www.php.net/manual/ja/language.operators.increment.php

複合演算子ですが、例えば

$i = $i + 1;

は、

$i += 1;

と書くことができます。後者を「複合演算子」といいます。

また、加算子/減算子は、変数の値を+1または-1します。
(加算子/減算子には前置と後置がありますが、今回のように単独で使われている場合は、あまり気にする必要はありません)

$i = 10;
++$i; // 加算子: +1する
--$i; // 減算子: -1する

ここまでを前提に、問題文をひもといていきます。

$n = 2;
$p = 3;

で、まず変数に値を代入しています。

++$n;

があるので、$nに1が加算されて、3になります。

$p *= 2;

$p = $p * 2;

と等価なので、3*2で6が代入されます。

$a = "$n, $p";

なので、$aには”3, 6″となります。

--$n;

があるので$nは2になり

$p *= 3;

があるので 6*3で18になり

$b = "$n, $p";

なので、$bには”2, 18″となります。

最後に

print $a . ' / ' . $b;

ですので、
3, 6 / 2, 18

となります。

選択肢2が正しいため、解答は2になります。

PHP8初級試験と公式問題集に興味がある方は、以下のページをご覧のうえ、この機会
に是非受験ください。

PHP8初級試験
https://www.phpexam.jp/summary/novice8

公式問題集:PHP8技術者認定初級試験公式問題集A
Kindle版 https://amzn.asia/d/1bS88y9
ペーパーバック版 https://amzn.asia/d/3P3Izeu

また、試験対策セミナーは毎月開催しています。興味がある方は以下のページをご覧
いただき是非セミナーにもご参加ください。(フォローいただけるとセミナーのご案
内が届くようになります)

PHP技術者認定機構の公式Peatixグループ
https://peatix.com/group/43424

www.phpexam.jp

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次