PHP条件文でのコードのエラー検出

次の問題では、あるプログラマーがコードを書き、 おそらくそこに誤りを犯しています。コードが 説明されていることを正しく実行しているかどうかを 確認する必要があります。コードが 正しく動作しない場合は、エラーを修正しなければなりません。

Задание 1

コードは数値の合計を確認する必要があります:

php<?php
  $num1 = '1';
  $num2 = '2';
  
  if ($num1 + $num2 === '3') {
    echo '+++'; // これが出力されるべきです
  } else {
    echo '---';
  }
?>
Задание 2

コードは数値の最初の桁を確認する必要があります:

php<?php
  $num = 123;
  
  if ($num[0] === 1) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 3

コードは数値の最初の桁を確認する必要があります:

php<?php
  $num = 123;
  
  if ((string) $num[0] === 1) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 4

コードは数値の最初の桁を確認する必要があります:

php<?php
  $num = 123;
  $str = (string) $num;
  
  if ($str[0] === 1) {
    echo '+++';
  } else {
    echo '---';
  }
Задание 5

コードは、数値がちょうど2桁であることを 確認する必要があります:

php<?php
  $num = 12;
  
  if (strlen($num) === 2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 6

コードは数値の最初の桁を確認する必要があります:

php<?php
  $num = 123;
  $str = (string) $num;
  
  if ($num[0] === '1') {
    echo '+++';
  } else {
    echo '---';
  }
Задание 7

コードは、数値がちょうど2桁であることを 確認する必要があります:

php<?php
  $num = 12;
  $str = (int) $num;
  
  if (strlen($str) === 2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 8

次のコードは、作者が意図した通りには 動作しません:

php<?php
  $num = 1;
  
  if ($num !== 1 or $num !== 2) {
    echo '+++';
  } else {
    echo '---'; // これが出力されるべきです
  }
?>

その理由を説明してください。

Задание 9

次のコードは、作者が意図した通りには 動作しません:

php<?php
  $var1 = '1';
  $var2 = '2';
  
  if ($var1 + 1 === $var2) {
    echo '+++'; // これがトリガーされるべきです
  } else {
    echo '---';
  }
?>

その理由を説明してください。