StepCoding

Variable Functions

อ่าน [653] หมวดหมู่: ฟังก์ชัน (Function)

Variable function มีลักษณะคล้าย ๆ กับ variable variable แต่จะแตกต่างกันตรงที่มันจะเรียกใช้ฟังก์ชันตามค่าที่ตัวแปรนั้น ๆ ผมจะยกตัวอย่างในกรณีหนึ่งที่เราจะต้องทำการตรวจสอบค่าของตัวแปร เพื่อเรียกใช้ฟังก์ชันแตกต่างกันครับ

<?php
$which = 'first';

switch ($which) {
	case 'first':
		first();
		break;
	case 'second':
		second();
		break;
	case 'third':
		third();
		break;
}
?>

จากตัวอย่างด้านบนนั้นเป็นการตรวจสอบว่าถ้าค่าของ $which มีค่าเป็น 'first' ก็ให้เรียกใช้ฟังก์ชัน first() ถ้ามีค่าเป็น 'second' ก็ให้เรียกใช้ second() และถ้ามีค่าเป็น 'third' ก็ให้เรียกใช้ third()

ถ้าเราใช้วิธี variable function เราจะไม่ต้องตรวจสอบค่าของมันเลย ดังนี้

<?php
$which = 'first';
$which();
?>

จากตัวอย่างด้านบนนี้เป็นการนำค่าที่ได้จากตัวแปร $which ไปเรียกใช้ฟังก์ชัน ซึ่งในตัวอย่างค่าของ $which มีค่าเป็น 'first' ดังนั้นมันจะทำการเรียกใช้ first() จะเห็นความแตกต่างระหว่างตัวอย่างที่ผมแสดงให้ผู้อ่านดู มากเลยทีเดียวครับ

แต่ในการเรียกใช้ฟังก์ชันวิธีนี้นั้น บางทีอาจจะไม่มีฟังก์ชันตามค่าของตัวแปรนั้น ๆ ซึ่งถ้าไม่มี [stong]PHP จะทำการแจ้งเตือน ดังนั้นเราควรจะตรวจสอบมันด้วยฟังก์ชัน function_exists() ว่ามีฟังก์ชันนั้น ๆ อยู่หรือไม่

<?php
function first() {
	// some code
}
function second() {
	// some code
}
function third() {
	// some code
}
$which = "fourth";
if (function_exists($which)) {
	$which();
}
?>

จากตัวอย่างด้านบนมันจะไม่ทำการเรียกใช้ฟังก์ชันใด ๆ เลยเนื่องจากไม่มีฟังก์ชันตามค่าของ $which

ผู้สนับสนุน