วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2557

ตัวแปร(variables) ของ PHP ของ PHP

ตัวแปร(variables) ของ PHP

ตัวแปรระดับฟังก์ชัน (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
ค่าของตัวแปรสถิตย์ได้รับการตั้งทุกครั้งเมื่อเรียกใช้ในครั้งต่อไป



ตัวอย่างที่ 1
<?php
          echo "Hello, World!";
?>
เมื่อเรียกผ่าน web browser ก็จะได้ผลคือ Hello, World! จะสังเกตเห็นว่า โปรแกรมนี้ คล้ายกับโปรแกรมตัวอย่างจากบทที่ 1 ลองพิมพ์และ save โปรแกรมนี้ลงในห้อง c:\_0001 จะใช้ชื่ออะไรก็ได้ แต่ใช้นามสกุล php แล้วลองเรียกดูจาก browser

จะเห็นว่า โปรแกรม php จะขึ้นต้นด้วย  <?php  และจบลงด้วย  ?>
ในแต่ละบรรทัด จะต้องลงท้ายด้วยเครื่องหมาย ; เสมอ ขอให้สังเกตว่า แต่ละบรรทัด อาจจะยาวมากกว่า 1 บรรทัดก็ได้ เช่นในกรณีที่เขียนโปรแกรมยาวมาก ๆ โปรแกรม editor ก็จะตัดบรรทัดให้ แต่ความจริงยังไม่จบบรรทัด
การย่อหน้าไม่จำเป็น เพียงแต่ทำให้ดูง่ายขึ้น ควรย่อหน้าให้เป็นระบบจะช่วยในการตรวจแก้โปรแกรมภายหลัง
ตัวอย่างที่ 2

<?php
          $message = "Hello, World!";
          echo $message;
?>
จากตัวอย่างที่ 2 จะเห็นว่าคล้ายกับตัวอย่างที่ 1 เพียงแต่มีการใช้ตัวแปรเพิ่มขึ้นมาเท่านั้น มีข้อสังเกตดังนี้

การประกาศตัวแปร ใช้เครื่องหมาย $ นำหน้า จากตัวอย่าง $message เป็นตัวแปรตัวหนึ่ง ที่ใช้เก็บค่า Hello, World!
จะสังเกตว่า การใช้ตัวอักษรจะอยู่ในเครื่องหมายคำพูด
 ใน PHP ไม่มีการประกาศตัวแปรล่วงหน้าว่าเป็นตัวแปรประเภทใด แต่โปรแกรมจะรู้ได้จากการใช้ตัวแปรนั้น ๆ
การเรียกใช้ตัวแปร ไม่จำเป็นต้องอยู่ในเครื่องหมายคำพูด เรียกใช้ได้โดยตรง เช่น echo $message; จะมีหรือไม่มีเครื่องหมายคำพูดก็ได้
ตัวอย่างที่ 3

<?php
          $greeting = "Hello, ";
          $num = 3+2;
          $num++;
          echo $greeting . $num . “ people”;
?>

ถ้า save ไว้ในห้อง c:\_0001 ซี่งเป็น virtual directory โดยใช้ชื่อไฟล์ว่า hello.php และเรียกผ่านInternet Explorer จะได้ผลดังนี้ (การทำ c:\_0001 ให้เป็น virtual directory ให้ดูบทที่ 1)


มีข้อสังเกตเพิ่มเติม ดังนี้

การใช้ตัวเลขตามปกติ ไม่ต้องอยู่ในเครื่องหมายคำพูด เว้นแต่ถ้าต้องการใช้ในลักษณะตัวอักษรจะต้องอยู่ในเครื่องหมายคำพูด
เครื่องหมาย ++ เป็นการเพิ่มค่าให้แก่ตัวแปรที่เป็นตัวเลข ซึ่งจะเท่ากับ ตัวแปรตัวนั้น บวกด้วย 1 จากตัวอย่างก็คือ $num + 1 นั่นเอง

ใช้เครื่องหมาย จุด เป็นตัวเชื่อมตัวแปรเข้าด้วยกัน เช่น $greeting . $num


ตัวอย่างที่ 4
<?php
          $name = 'สุวรรณี'; // กำหนดค่าให้แก่ตัวแปร $name
          $greeting_1 = "สวัสดี $name";
          $greeting_2 = 'สวัสดี, $name';
          echo "$greeting_1\n";
          echo "$greeting_2\n";
?>
ให้ save ลง  c:\_0001 โดยใช้ชื่อ hello_2.php เมื่อเรียกผ่านเว็บ หรือลองรันดู จะได้ผลดังนี้


มีข้อสังเกตดังนี้
การใช้เครื่องหมายคำพูดสองเดียว กับ ขีดเดียว มีความหมายต่างกัน
การใช้เครื่องหมายคำพูดสองขีด โปรแกรมจะแปรค่าตัวแปร แล้วนำมาแสดงผลให้เห็น เช่น สวัสดี สุวรรณี ชื่อสุวรรณี อยู่ในตัวแปร $name
การใช้เครื่องหมายคำพูดขีดเดียว โปรแกรมจะไม่แปรค่าตัวแปร แต่จะแสดงเหมือนกับที่เขียน เช่น สวัสดี $name
ใช้เครื่องหมาย // เพื่อเขียนคำอธิบาย ส่วนที่อยู่ต่อจากเครื่องหมายนี้ ในบรรทัดเดียวกัน จะไม่แสดงออกให้เห็นเมื่อรันโปรแกรม ถ้าจะเขียนหลายบรรทัด ให้ใชเครื่องหมาย /* เพื่อเริ่มต้น และ  */ เมื่อจบคำอธิบาย



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

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