PHPプログラム基礎の問題集

2023年4月1日プログラム基礎PHP,プログラム問題集

プログラミング基礎を使ったサンプルコードまとめ【PHP基礎講座】
プログラミング基礎を使ったサンプルコードまとめ【PHP基礎講座】

PHPのプログラミング基礎を使った問題をメインにサンプルコードをまとめて紹介します。

ユート

この記事ではプログラミングの基礎知識だけを使った問題やサンプルコードをたくさん用意しています。(ちょこちょこ更新していきます)

プログラミング歴

この記事を書いている僕は、プログラミング歴10年以上のプログラマーです。
詳細:プログラミング未経験の新卒が10年間プログラマーとして仕事して思うこと

関連記事:プログラミング基礎を使った問題やサンプルコードまとめ【JavaScript基礎講座】

プログラミング基礎を使った問題

プログラムの基礎知識を使って解くことが出来る練習問題です。

変数を使った問題

プログラミングの基礎である変数を使った問題です。

ユート

変数は「数値」や「文字列」を自由に出し入れしてプログラム内で使用することができる 箱のようなもの です。

関連記事:変数を理解するコツを分かりやすく解説【プログラミング初心者の入門講座】

問)変数へ数字の 1 を代入する

PHPの変数は $ で宣言します。そして変数に数字を代入するには = で行います。

$hensu = 1;

問)変数へ数字の 1 を代入して echo で出力する

$hensu = 1;
echo $hensu;

問)変数へ代入した数字の 1 へ 数字の 1 を加算する

数字を加算するには + を使います。

$hensu = 1;
$hensu = $hensu + 1:

または

$hensu = 1;
$hensu += 1:

問)変数へ代入した数字の 1 へ数字の 1 を減算する

数字を減算するには – を使います。

$hensu = 1;
$hensu = $hensu - 1:

または

$hensu = 1;
$hensu -= 1:

問)変数へ代入した数字の 10 へ数字 2 を割り算する

数字を割り算するには / を使います。

$hensu = 10;
$hensu = $hensu / 2;

問)変数へ代入した数字の 10 へ数字 2 を掛け算する

数字を掛け算するには * を使います。

$hensu = 10;
$hensu = $hensu * 2;

問)変数へ文字列の あいうえお を代入する

文字列はダブルクォーテーションで括ります。そして変数へ文字列を代入するには = で行います。

$hensu = 'あいうえお';

問)変数へ代入した文字列 あいうえお に文字列の かきくけこ を連結する

文字列の連結は . を使います。

$hensu = 'あいうえお';
$hensu = $hensu . 'かきくけこ';

または

$hensu = 'あいうえお';
$hensu .= 'かきくけこ';

問)文字列の '2020/01/31’ を区切り文字 '/’ にして分解して配列へ格納

区切り文字を指定して文字列を配列に分解するには explode で行います。

$moji = '2020/01/31';
$hairetu = explode('/', $moji);
echo print_r($hairetu);

文字列を操作する問題

文字列を操作する問題です。

問)数字の「5」を0埋めで「05」にして出力

echo str_pad(5, 2, 0, STR_PAD_LEFT);
echo sprintf('%02d', 5);

問)文字列の「programu」の2番目から3文字の「rog」を出力

文字列を指定位置から取得するには mb_substr() を使います。

補足:substr() は日本語(マルチバイト文字)に対応していません。日本語に用いる場合には mb_substr() を用います。

$str = 'purogramu';
echo mb_substr($str, 2, 3);

問)文字列の「programu」の5番目から最後までの「ramu」を出力

$str = 'purogramu';
echo mb_substr($str, 5);

問)文字列の「programu」の後ろ3番目から2文字の「am」を出力

$str = 'purogramu';
echo mb_substr($str, -3, 2);

問)文字列の「programu」の後ろ3番目から最後までの「amu」を出力

$str = 'purogramu';
echo mb_substr($str, -3);

問)文字列の「I am studying programming.」の「studying」を「understand」へ置換

文字列を置換するには str_replace() を使います。

$str = 'I am studying programming.';
echo str_replace('studying', 'understand', $str);

問)文字列の「あいうえお,かきくけこ,さしすせそ」で「,」を区切り文字にして配列にする

文字列を区切り文字で分解して配列にするには explode() を使います。

$moji = 'あいうえお,かきくけこ,さしすせそ';
$hairetu = explode(',', $moji);

配列/オブジェクトを使った問題

プログラミングの基礎である配列を使った問題です。

ユート

配列は変数を複数入れておくことが出来るプログラム内で使用することができる タンス のようなものです。

関連記事:配列を理解するコツを分かりやすく解説【プログラミング初心者の入門講座】

問)配列を宣言

配列は [] で宣言することができます。または array() で行います。

$hairetu = [];

または

$hairetu = array();

問)数字の1を代入した変数を2つの要素を持った配列へ代入

配列の要素を指定するには [0] や [1] のように行います。

$hensu = 1;
$hairetu = array(
    $hensu,
    $hensu
);

または

$hensu = 1;
$hairetu = [
    $hensu,
    $hensu
];

問)配列の要素1へ数字の1を代入して echo で出力する

$hensu = 1;
$hairetu = array(
    $hensu,
    $hensu
);
echo $hairetu[1];

または

$hensu = 1;
$hairetu = [
    $hensu,
    $hensu
];
echo $hairetu[1];

問)上記問題で作成した配列hairetuの要素数を echo で出力する

$hensu = 1;
$hairetu = [
    $hensu,
    $hensu
];
echo count($hairetu);

問)配列の値をカンマ区切りで文字列に変換

配列の値を区切り文字で文字列に変換するには implode で行います。

$hairetu = [
    'apple', 'りんご', '林檎'
];
echo implode(',', $hairetu);

問)配列をJSONへ変換

配列をJSONに変換するには json_encode() で行います。

$hairetu = [
    'apple', 'りんご', '林檎'
];
echo json_encode($hairetu);

if文で条件分岐を使った問題

プログラミングの基礎であるif文を使った問題です。

ユート

if文を理解するには、フロー図などで図解にするとわかりやすくなります。

関連記事:if文を使った条件分岐を理解するコツを分かりやすく解説【プログラミング初心者の入門講座】

問)数字の100を代入した変数を宣言して、if文で変数の値が100であるか判定

if文の条件は if (右辺 演算子 左辺) で定義します。右辺の値と左辺の値が等しいか判定する演算子は == を使用します。

$hensu = 100;
if ($hensu == 100) {
    echo "変数に100が代入された";
}

問)数字の100を代入した変数を宣言して、if文で変数の値が90より大きいか判定

if文の条件は if (右辺 演算子 左辺) で定義します。右辺の値が左辺の値より大きいか判定する演算子は > を使用します。

$hensu = 100;
if ($hensu > 90) {
    echo "変数は90より大きい";
}

問)数字の100を代入した変数を宣言して、if文で変数の値が110より小さいか判定

if文の条件は if (右辺 演算子 左辺) で定義します。右辺の値が左辺の値より小さいか判定する演算子は < を使用します。

$hensu = 100;
if ($hensu < 110) {
    echo "変数は110より小さい";
}

問)数字の100を代入した変数を宣言して、if文で変数の値が90以上か判定

if文の条件は if (右辺 演算子 左辺) で定義します。右辺の値が左辺の値以上か判定する演算子は >= を使用します。

$hensu = 100;
if ($hensu >= 90) {
    echo "変数は90以上";
}

問)数字の100を代入した変数を宣言して、if文で変数の値が110以下か判定

if文の条件は if (右辺 演算子 左辺) で定義します。右辺の値が左辺の値以下か判定する演算子は <= を使用します。

$hensu = 100;
if ($hensu <= 110) {
    echo "変数は110以下";
}

問)変数 $country へ文字列 “japan" を代入して次のフローのような条件でif文を書く

$country = 'japan';
$language = '';
if ($country != 'japan') {
    $language = 'english';
}

問)変数 $country へ文字列 “america" を代入して次のフローのような条件でif文を書く

$country = 'america';
$language = '';
if ($country == 'japan') {
    $language = 'japanese';
} else {
    $language = 'english';
}

問)変数 $country へ文字列 “america" を代入して次のフローのような条件でif文を書く

$country = 'america';
$language = '';
if ($country == 'japan') {
    $language = 'japanese';
} else if ($country == 'america') {
    $language = 'english';
}

for文でループ処理を使った問題

プログラミングの基礎であるfor文を使った問題です。

ユート

for文はプログラミングで何度も同じ処理を行うループ処理を行うことができます。

関連記事:ループの繰り返し処理を理解するコツをわかりやすく解説【プログラミング初心者の入門講座】

問)for文で変数をインクリメントして10回ループ

ループは for (最初だけ行う処理; ループを続ける条件式; 1回ループ終る毎に行う処理) で定義します。あとインクリメントは変数の値を1増やすことをいいます。

for ($hensu = 1; $hensu <= 10; $hensu++) {
    echo $hensu + 'になりました。';
}

問)for文で変数をデクリメントして10回ループ

デクリメントはインクリメントの逆で変数の値を1減らすことをいいます。

for ($hensu = 10; $hensu >= 1; $hensu--) {
    echo $hensu + 'になりました。';
}

for文とif文を使った問題

プログラミングの基礎であるfor文とif文を使った問題です。

問)100回ループするfor文を定義して50回目のループでforを終了させる

for文の終了するには break で行います。

for ($hensu = 1; $hensu <= 100; $hensu++) {
    if ($hensu == 50) {
        echo $hensu + 'になったのでfor文を終了します。';
        break;
    }
}

配列を使ったループ処理の問題

問)配列の要素分だけforでループする

$hairetu = [
    'A', 'B'
];
$row = count($hairetu);
for ($i = 0; $i < $row; $i++) {
    echo $hairetu[$i];
}

問)サンプル配列の中身をHTMLのtableタグで出力する

サンプル配列

<?php
$users = [
  [
    'id' => 1,
    'name' => 'たろう',
  ],[
    'id' => 2,
    'name' => 'はなこ',
  ]
];
?>
<?php
$users = [
  [
    'id' => 1,
    'name' => 'たろう',
  ],[
    'id' => 2,
    'name' => 'はなこ',
  ]
];
?>
<html>
<head>
<meta charset="utf-8">
<title>サンプル</title>
</head>
<body>
  <table>
    <?php foreach ($users as $user) : ?>
    <tr>
        <td><?php echo $user['id'] ?></td>
        <td><?php echo $user['name'] ?></td>
    </tr>
    <?php endforeach; ?>
  </table>
</body>
</html>

日付関数を使った問題

日付関数を使った問題です。プログラムでは日付関数を使うことが多くあります。

問)本日の日付を echo で表示(日付の形式は「2020/01/01」)

PHPで日付を扱うには date('形式’) で行います。

$hiduke = date('Y/m/d');
echo $hiduke;

問)昨日の日付を echo で表示(日付の形式は「2020/01/01」)

$hiduke = date('Y/m/d', strtotime('-1 day'));
echo $hiduke;

問)1年後の日付を echo で表示(日付の形式は「2020/01/01」)

$hiduke = date('Y/m/d', strtotime('+1 year'));
echo $hiduke;

問)本日の日時を echo で表示(日付の形式は「2020/01/01 00:00:00」)

$nitiji = date('Y/m/d H:i:s');
echo $nitiji;

まとめ:プログラミング基礎を使ったサンプルコード

今回はプログラミング基礎を使ったサンプルコードをまとめて紹介しました。

ここで紹介したサンプルコードの知識はすべて基礎知識だけで実装することが出来る内容です。もしわからないことがあれば振り返り学習をして1つずつ理解してスキルアップを目指しましょう!

ユート

基礎ばかり学習するのが嫌な人は、ステップアップした内容へ踏み込んでみるのもアリかもです。

基礎学習を終えた人へ

基礎学習を一通り終えた人は一度小さなシステムを1つ作ってみることをおすすめします。

理由は

  • 達成感を得ることができる
  • 実務で必要なノウハウやスキルが身につく
    • システムエラーの対処スキル
  • 次のステップアップにつながる
    • 次のシステムで改善すべき点がわかる
    • 汎用的なシステムを実装する重要性

など次のステップへ繋がるたくさんの経験を得ることができます!

最後まで読んでもらいありがとうございます。

ユート
ユート

Webプログラマ兼ブロガー | プログラミング基礎知識を発信|Webプログラマ歴は10年以上|JavaScript,PHP.HTML | 「人生の時間は有限。悪いことをしている時間はない」
プロフィール

2023年4月1日プログラム基礎PHP,プログラム問題集

Posted by ユート