เรามาตามแกะรอยฟังก์ชั่น php ที่อยู่ในไฟล์ wp-blog-header.php กันต่อเลยนะครับ จากตัวอย่างที่เอามาให้ดูเอาโค้ดมาจาก WordPress version 2.8.6 ถือว่าอัพเดทล่าสุดในตอนที่เขียนเรื่องนี้อยู่นะครับ ขอยกโค้ดคอมเม้นมาให้อ่านด้วยเลย เพราะสามารถที่จะอธิบายการทำงานแบบโปรแกรมเมอร์เขาทำกัน ค่อยๆดูไปครับเดี๋ยวเราก็จะเข้าใจฟังก์ชั่น PHP เอง
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
?>
ดูตัวอย่างฟังก์ชั่น isset กันก่อนเลยครับ
isset
PHP isset() ตรวจสอบว่าตัวแปรมีอยู่หรือไม่ คือมีการประกาศค่าตัวแปรหรือไม่ ไม่ว่าจะเป็นค่าว่างก็ตาม จากโค้ดphp ใน WordPress จึงเป็นการตรวจสอบว่า if ถ้าตัวแปร $wp_did_header ไม่ได้มีการประกาศ(เพราะมีเครื่องหมาย ! อยู่ข้างหน้า) ก็จะเข้าไปทำงานคำสั่งphp ี่อยู่ในเครื่องหมายปีกกา{} ตามSyntax ของภาษาphpนั่นเอง
เมื่อเริ่มเข้าไปทำงานฟังก์ชั่นดังกล่าวแล้วจึงมีการประกาศตัวแปร $wp_did_header = true; คือมีค่าเป็น True หรือในทางโปรแกรมจะมีค่าเป็นจริง หรือมีค่าเป็นหนึ่ง (1) นั่นเอง
require_once
PHP require_once() (ต้องการเพียงครั้งเดียว) เป็นคำสั่งที่ใช้ในการเรียกไฟล์จากภายนอก โดยทำการเรียกค่าโปรแกรมหรือข้อความในไฟล์ปลายทาง คำสั่ง require() เมื่อโปรแกรมไม่พบไฟล์ดังกล่าวโปรแกรมจะหยุดทำงานในทันที require กับ require_once ต่างกันตรงที่ require_one จะมีการนำเข้าไฟล์ดังกล่าวเพียงครั้งเดียว แม้ว่าจะมีการจะมีการ require_once เข้ามาหลายครั้งก็ตาม(ขอบคุณ thaicreate )
จากโค้ดฟังก์ชั่น php ดังกล่าวมีการเรียกใช้งานถึง 2 ครั้ง และมีการเรียกใช้ฟังก์ชั่น WP(); อีกด้วย เป็นการเรียกใช้งานฟังก์ชั่นที่ถูกสร้างขึ้นมาแล้ว ซึ่งอาจจะอยู่ในไฟล์ที่ได้เรียกมาแล้วเมื่อซักครู่ก็เป็นไปได้ ดังนั้นเราก็จะแกะรอย ค่อยๆตามไปดูว่ามันทำงานกันอย่างไรนั่นเอง