Problemet med valgfrie krøllparenteser i betingelser i PHP

Til tross for at PHP tillater de viste forkortelsene med krøllparenteser, anbefaler jeg generelt ikke å gjøre det, ettersom det er en kilde til vanskelig oppdagede feil.

La oss for eksempel ha følgende kode:

php<?php
  $test = 3;
  
  if ($test > 0)
    echo $test;
?>

La oss nå si at vi bestemmer oss for, i tilfellet hvis betingelsen oppfylles, å gjøre et andre echo også:

php<?php
  $test = 3;
  
  if ($test > 0)
    echo $test;
    echo '+++';
?>

Imidlertid, uten krøllparenteser er det bare den første utskriften som er inni betingelsen, det vil si at den første utskriften vil utføres når betingelsen er sann, mens den andre - alltid.

Faktisk er koden vår ekvivalent med denne:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // denne linjen endte utenfor betingelsen
?>

Men vi hadde ønsket en slik kode:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // denne linjen er inni betingelsen
  }
?>

Nettopp derfor anbefales det alltid å plassere krøllparenteser, for ikke å havne i slike feil.

Задание 1

Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:

php<?php
  $num = 5;
  
  if ($num === 5)
    echo $num;
    echo '+++';
?>
Задание 2

Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:

php<?php
  $num = 0;
  
  if ($num === 5)
    echo $num;
    echo '+++';
?>
Задание 3

Uten å kjøre koden, bestem hva som vil skrives ut på skjermen:

php<?php
  $num = 0;
  
  if ($num === 5)
    echo $num;
    echo '---';
  echo '+++';
?>