ใน PHP มีฟังก์ชั่นที่ใช้การตรวจสอบค่าต่างๆมากมาย ไม่ว่าจะเป็น ฟังก์ชั่น isset() : ใช้ในการตรวจสอบว่าตัวแปลที่กำหนดมีการ เซ็ตไว้หรือไม่ หรือ ฟังก์ชัน ctype_digit() : ใช้สำหรับตรวจสอบตัวเลข หรือ ตรวจสอบทำงานได้อย่างถูกต้องไหม เป็นต้น และสำหรับบทความนี้ เราจะมาเรียนรู้ฟังก์ชัน ctype_alpha() ซึ่งเป็นฟังก์ชันที่ใช้ในการตรวจสอบอักขระที่เป็นตัวอักษรเท่านั้น ในที่นี้หมายถึง A/a-Z/z และจะส่งค่าเป็น bool เท่านั้น
เช่น ถ้าพบว่า ใน string นั้น มีเพียงตัวอักษร จะส่งค่ากลับมาเป็น true ในทางกลับกัน หากพบว่ามีตัวอักระอื่นๆเช่น สัญลักษณ์ต่างๆ ตัวเลข เข้ามาแทรกส่วนใดส่วนหนึ่งหรือทั้งหมดของ string จะส่งค่ากลับมาเป็น false
ctype_alpha ( string $text ) : bool
เรามาดูตัวอย่างโค้ดน่ะครับ
<?php
$str = "my age is 21";
$str1 = "My name is genetic";
$str2 = "MyNameIsGenetic";
if(ctype_alpha($str)){
echo "str= true <br>";
}else{
echo "str = false <br>";
}
if(ctype_alpha($str1)){
echo "str1 = true <br>";
}else{
echo "str1 = false <br>";
}
if(ctype_alpha($str2)){
echo "str2 = true <br>";
}else{
echo "str2 = false <br>";
}
?>
ผลลัพธ์ที่ได้
str = false
str1 = false
str2 = true
จากตัวอย่างจะเห็นว่า ในตัวแปร $str นั้นพบว่า มีตัวเลข 21 อยู่ จึงคืนค่าเป็น FALSE
ส่วนในตัวแปร $str1 นั้นมีเฉพาะตัวอักษรแต่ทำไมถึงค่าออกมาเป็น FALSE ก็เพราะว่ามีช่องว่าง (space) นั้นไม่ถือว่าเป็นอักษรนั่นเองครับ ดังนั้นมันจึงคืนค่าเป็น FALSE
ตัวอย่างที่สอง
<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "The string $testcase consists of all letters.\n";
} else {
echo "The string $testcase does not consist of all letters.\n";
}
}
?>
ในตัวอย่างที่สองจะการ Loop เพื่ออ่านค่าใน Array ซึ่งมีสองค่า และผลลัพธ์ที่ได้
The string KjgWZC consists of all letters.
The string arf12 does not consist of all letters.
จะเห็นว่า อาร์เรย์ตัวเป็นตัวอักษรทั้งหมดถึงแม้จะมีตัวพิมพ์เล็กตัวพิมพ์ใหญ่ก็ตาม ส่วนอาร์ตัวที่สองได้ echo ออกมาว่า ไม่ใช่ตัวอักษรทั้งหมด เพราะพบมีตัวเลข 1 และ 2 ปะปนอยู่ครับ
เราสามารถนำฟังก์ชันไปประยุกต์ได้มากมายเช่น เพื่อกาารตรวจซื่อหรือนามสกุลของผู้ใช้ เพื่อป้องกันไม่ให้มีตัวเลขหรือสัญลักษณ์อื่นๆปะปนมาด้วย เพราะโดยปกติแล้ว ชื่อหรือนามสกุล มักจะไม่ตัวเลขครับ หวังว่าบทความนี้จะเป็นประโยชน์ในการนำไปใช้ให้เข้ากับโปรเจ็คของเราน่ะครับ