วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2557

ตัวแปรระดับฟังก์ชัน ตัวแปรระดับ global ตัวแปรสถิตย์

ตัวแปรระดับฟังก์ชัน

ตัวแปรระดับฟังก์ชันหรือ local variable เป็นการประกาศเพื่อใช้เฉพาะภายในฟังก์ชัน ไม่สามารถเรียกจากภายนอกฟังก์ชันได้
<?php
$newline = <<<NLSTRING 
<br/>\n
NLSTRING;
$var_global = 10 ;
function show_value() 
{
global $newline;
$var_local= 75 ;
echo "\$var_local 1: $var_local";
echo $newline;
}
show_value(); 
echo "\$var_global : $var_global";
echo $newline;
echo "\$var_local 2: $var_local";
echo $newline;
?>
ผลลัพธ์
$var_global 1 :
$var_local 1: 75
$var_global 2: 10
$var_local 2:
ตามตัวอย่างนี้ ตัวแปรระดับฟังก์ชัน $var_local ไม่สามารถแสดงผลในการพิมพ์ภายนอกฟังก์ชัน show_value() และ $var_global ที่เป็นตัวแปรระดับ global ไม่สามารถแสดงผลภายใน show_value() เพราะมี scope ต่างกัน

ตัวแปรระดับ global

ถ้าต้องการนำตัวแปรระดับ global มาใช้ภายในฟังก์ชันต้องประกาศด้วยคีย์เวิร์ด global ก่อนประโยคคำสั่งที่ใช้ตัวแปรนั้น ตัวอย่าง ฟังก์ชัน show_value() ใช้ $newline จากภายนอกฟังก์ชัน
global $newline;

ตัวแปรสถิตย์

การประกาศตัวแปรสถิตย์ใช้ คีย์เวิร์ด static เมื่อมีการเรียกใช้ฟังก์ชัน โปรแกรมจะกำหนดค่าตัวแปรตามที่ระบุเพียงครั้งเดียว ถ้าเรียกซ้ำอย่างต่อเนื่องค่านี้จะเปลี่ยนแปลงตามการคำนวณ
<?php
function increment() 
{
static $increase = 5 ;
$increase++;
echo $increase."<br/>\n";
}
$end = 5 ;
for ($i = 1 ; $i < $end; $i++) 
    increment();
?>
ผลลัพธ์ 
6
7
8
9

ค่าของตัวแปรสถิตย์ได้รับการตั้งทุกครั้งเมื่อเรียกใช้ในครั้งต่อไป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น