การค้นหาข้อผิดพลาดในโค้ดที่มีเงื่อนไข PHP
ในโจทย์ต่อไปนี้ โปรแกรมเมอร์คนหนึ่งเขียนโค้ดไว้ และอาจจะทำผิดพลาดไว้ในโค้ด คุณต้องตรวจสอบว่า โค้ดทำตามที่อธิบายไว้หรือไม่ ถ้าโค้ด ทำงานไม่ถูกต้อง คุณต้องแก้ไขข้อผิดพลาด
โค้ดควรตรวจสอบผลรวมของตัวเลข:
<?php
$num1 = '1';
$num2 = '2';
if ($num1 + $num2 === '3') {
echo '+++'; // ควรจะแสดงข้อความนี้
} else {
echo '---';
}
?>
โค้ดควรตรวจสอบตัวเลขตัวแรก:
<?php
$num = 123;
if ($num[0] === 1) {
echo '+++';
} else {
echo '---';
}
?>
โค้ดควรตรวจสอบตัวเลขตัวแรก:
<?php
$num = 123;
if ((string) $num[0] === 1) {
echo '+++';
} else {
echo '---';
}
?>
โค้ดควรตรวจสอบตัวเลขตัวแรก:
<?php
$num = 123;
$str = (string) $num;
if ($str[0] === 1) {
echo '+++';
} else {
echo '---';
}
โค้ดควรตรวจสอบว่าในตัวเลข มีสองหลักพอดี:
<?php
$num = 12;
if (strlen($num) === 2) {
echo '+++';
} else {
echo '---';
}
?>
โค้ดควรตรวจสอบตัวเลขตัวแรก:
<?php
$num = 123;
$str = (string) $num;
if ($num[0] === '1') {
echo '+++';
} else {
echo '---';
}
โค้ดควรตรวจสอบว่าในตัวเลข มีสองหลักพอดี:
<?php
$num = 12;
$str = (int) $num;
if (strlen($str) === 2) {
echo '+++';
} else {
echo '---';
}
?>
โค้ดที่นำเสนอนี้ทำงานไม่เหมือน ที่ผู้เขียนตั้งใจไว้:
<?php
$num = 1;
if ($num !== 1 or $num !== 2) {
echo '+++';
} else {
echo '---'; // ควรจะแสดงข้อความนี้
}
?>
อธิบายเหตุผล
โค้ดที่นำเสนอนี้ทำงานไม่เหมือน ที่ผู้เขียนตั้งใจไว้:
<?php
$var1 = '1';
$var2 = '2';
if ($var1 + 1 === $var2) {
echo '+++'; // ควรจะทำงานส่วนนี้
} else {
echo '---';
}
?>
อธิบายเหตุผล