PHP-ում պայմանների մեջ գանգուր փակագծերի օպցիոնալության խնդիրը
Չնայած այն հանգամանքին, որ PHP-ն թույլ է տալիս վերը նշված կրճատումները գանգուր փակագծերով, ես ընդհանուր առմամբ խորհուրդ չեմ տալիս այդպես անել, քանի որ դա դժվարությամբ բռնվող սխալների բուծման վայր է:
Ենթադրենք, օրինակ, կա հետևյալ կոդը:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Ենթադրենք, որ այժմ մենք որոշել ենք, որ
եթե պայմանը կատարվում է, կատարել նաև երկրորդ
echo-ը.
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Սակայն, առանց գանգուր փակագծերի, պայմանի ներսում գտնվում է միայն առաջին տպելը, այսինքն՝ առաջին տպելը կգործի, երբ պայմանը ճիշտ է, իսկ երկրորդը՝ միշտ:
Փաստորեն, մեր կոդը համարժեք է հետևյալին.
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // այս տողը դուրս է մնացել պայմանից
?>
Իսկ մենք կցանկանայինք այսպիսի կոդ.
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // այս տողը պայմանի ներսում է
}
?>
Հենց այդ պատճառով է, որ խորհուրդ է տրվում միշտ կատարել գանգուր փակագծերի տեղադրում, որպեսզի չընկնել նմանատիպ սխալների մեջ:
Չգործարկելով կոդը, որոշեք, թե ինչ կտպվի էկրանին.
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Չգործարկելով կոդը, որոշեք, թե ինչ կտպվի էկրանին.
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Չգործարկելով կոդը, որոշեք, թե ինչ կտպվի էկրանին.
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>