PHP เบื้องต้น > ภาษา PHP
      ตัวแปรและค่าคงที่
      ตัวแปรและค่าคงที่เป็นสมาชิกพื้นฐานในการทำงานของภาษาโปรแกรมทั่วไปรวมถึง  PHP 
      การกำหนดค่าคงที่
              ค่าคงที่ใช้เก็บค่า เช่น ตัวแปร แต่เมื่อตั้งค่าแล้วจะไม่สามารถเปลี่ยนแปลงได้  การกำหนดใช้ฟังก์ชัน  define 
      define ("SHAMPOOPRICE", 50); 
        define ("CONDITIONERPRICE",50); 
      define ("SOAPPRICE", 35); 
      ให้สังเกตว่า ชื่อของค่าคงที่เป็นตัวพิมพ์ใหญ่  เนื่องจากเป็นแบบแผนการตั้งชื่อ ตามแบบภาษา C เพื่อแยกระหว่างตัวแปรกับค่าคงที่  แบบแผนนี้ไม่บังคับแต่ช่วยทำให้คำสั่งอ่านและบำรุงรักษาได้ง่าย 
              ความแตกต่างสำคัญประการหนึ่ง  ระหว่างค่าคงที่กับตัวแปรคือ เมื่ออ้างอิงค่าคงที่ไม่ต้องใช้เครื่องหมายดอลลาร์นำหน้า  ถ้าต้องการใช้ค่าคงที่ ให้ใช้เฉพาะชื่อ  ตัวอย่าง  
        echo   SOAPPRICE; 
      ประเภทข้อมูลและค่าพิเศษ 
      ประเภทข้อมูลและค่าพิเศษไม่สามารถจัดเข้าสู่กลุ่มประเภทข้อมูลจึงต้องแยกอธิบายต่างหาก 
      NULL
              NULL  เป็นประเภทข้อมูลและค่าพิเศษใน PHP ที่ระบุ ไม่มีค่า หรือ ค่าว่าง ตัวแปรเป็น NULL ได้ 
      
        - ถ้าตั้งด้วยคีย์เวิร์ด NULL และค่านี้ชนิดตัวพิมพ์มีผล
 
        - ถ้าไม่เคยได้รับการกำหนดค่า
 
        - ถ้ากำหนดด้วยเมธอด unset
 
       
      NULL แตกต่างจากค่าจำนวนเต็ม 0 หรือข้อความว่าง    เพราะสองค่านี้ได้รับการตั้งค่า การทดสอบค่า NULL เรียกฟังก์ชัน is_null 
      <?php 
      
        
          | $myvalue = Null  ;  | 
          // NULL เป็นค่าชนิดตัวพิมพ์มีผล | 
         
        
          | echo is_null($myvalue); | 
          // มีค่าเป็น 1 | 
         
       
      ?>  
      Resource
              เมื่อ PHP ต้องการรักษาค่าบนอ๊อบเจคที่ไม่จำเป็นต้องมาจาก PHP เช่น การเชื่อมต่อฐานข้อมูลหรือจัดการ กับอ๊อบเจคของระบบปฏิบัติการ  ตัวแปรพิเศษนี้เรียกว่า resource 
              ตามปกติ resource  ส่งผ่านระหว่างฟังก์ชันที่ทำงานเช่นนี้ ได้รับการปล่อยโดย PHP  engine เมื่อไม่มีความจำเป็น ถ้าใช้ฟังก์ชัน var_dump บนตัวแปร resource จะเห็นผลลัพธ์ลักษณะนี้ 
        Resource(2) of type (mysql link)  
      ตัวแปร By Value และ By  Reference 
              ตามค่าเริ่มต้น  ตัวแปรและค่าคงที่ได้รับการกำหนดแบบ by value เมื่อกำหนดค่าจาก  1 ตัวแปรไปยังอีกตัว ค่าได้รับการคัดลอก สิ่งนี้ทำงานได้กับประเภทข้อมูลทั้งหมด  ยกเว้นอ๊อบเจค 
      <?php 
      
        
          | $a = 200; | 
            | 
         
        
          | $b = $a;  | 
          //  $b มีสำเนาของค่าเป็น 200 | 
         
        
          | $c = "hello"; | 
            | 
         
        
          | $d = $c; | 
          //  $d เก็บสำเนาของ "hello" | 
         
        
          | $e = array(1, 2, 3); | 
            | 
         
        
          | $f = $e;  | 
           //  ทั้ง $e และ $f มีค่า (1,  2, 3) | 
         
        
          | $f[2] = 4;  | 
          // $f มีค่า(1, 2, 4), $e ไม่มีการเปลี่ยน | 
         
        
          | $g = SOAPPRICE;  | 
           // $g มีค่าของค่าคงที่  SOAPPRICE (0) | 
         
       
       ?>  
      การกำหนดค่าแบบ by  reference เป็นการบอกตัวแปรให้กระทำเป็น "alias" ของอีกตัวแปรที่ทั้งคู่อ้างอิงถึงข้อมูลเดียวกัน  การกำหนดให้เติมคำนำหน้าด้วย & operator 
      <?php 
      
        
          | $a = 123; | 
            | 
         
        
          | $b = &$a; | 
          //  $b และ $a อ้างอิงถึงข้อมูลเดียวกัน | 
         
        
          | $a = 456; | 
          // $b มีค่าเป็น 456 ! | 
         
        
          |   | 
            | 
         
        
          | $arr = array(array(1), array(2), array(3)); | 
            | 
         
        
          | $sub = &$arr[0]; | 
          // $sub อ้างถึง array เดียวกันเป็น $arr[0] | 
         
        
          | $sub[0] = 100; | 
           // $sub[0] และ $arr[0][0]  ทั้งคู่มีค่า 100 | 
         
       
      ?>  
      Scope ของตัวแปร 
              คำว่า scope อ้างถึงพื้นที่ภายในสคริปต์ที่มองเห็นตัวแปรได้  ประเภทพื้นฐานของ scope ใน PHP คือ  
      
        - Global  เป็นการประกาศตัวแปรในสคริปต์ที่มองเห็นได้ทั่วทั้งสคริปต์ แต่ไม่ใช่ภายในฟังก์ชัน
 
        - ตัวแปรที่ใช้ภายในฟังก์ชันเป็นตัวแปรภายในฟังก์ชัน
 
        - ตัวแปรที่ใช้ภายในฟังก์ชันแต่ประกาศเป็น  global อ้างอิง เป็นตัวแปร global ของชื่อเดียวกัน
 
       
      ตัวแปร Predefined
              PHP มาพร้อมกับตัวแปร  predefined จำนวนหนึ่งที่ให้สารสนเทศเกี่ยวกับสภาพแวดล้อมการทำงานปัจจุบัน  ส่วนใหญ่เป็น global array ด้วยชื่อ คีย์อ้างอิงถึงสารสนเทศเฉพาะที่ค้นหาได้  
      
        - $GLOBAL สิ่งนี้เก็บการอ้างอิงถึงตัวแปร  global ทั้งหมดภายในสคริปต์ คีย์ของ array นี้เป็นชื่อของตัวแปร
 
        - $_SERVER  สิ่งนี้เก็บสารสนเทศเกี่ยวกับบริบทในการประมวลผลสคริปต์ เช่น  ชื่อแม่ข่าย ชื่อเพจที่กำลังเรียกใช้ สารสนเทศเกี่ยวกับการเชื่อมต่อ และอื่นๆ
 
        - $_GET, $_POST สิ่งนี้เก็บตัวแปรที่เพจส่งให้แม่ข่ายเป็นส่วนของฟอร์ม  HTML
 
        - $_SESSION, $_COOKIE สิ่งนี้เก็บสารสนเทศการจัดการผู้เยี่ยมชม  และสิ่งอำนวยความสะดวกจัดเก็บเป็น cookie 
 
        - $_REQUEST สิ่งนี้เก็บเนื้อหาของ $_GET,  $_POST และ $_SESSION
 
        - $_ENV  สิ่งนี้เก็บตัวแปร environment สำหรับกระบวนการสำหรับ  PHP engine ที่กำลังประมวลผล คีย์ของ array เป็นชื่อของตัวแปร environment
 
        - $php_errormsg  สิ่งนี้เก็บข่าวสารความผิดพลาดครั้งสุดท้ายที่สร้างโดย PHP  engine ขณะที่กำลังประมวลสคริปต์ปัจจุบัน มีให้เฉพาะภายใน  scope ของคำสั่งที่เกิดความผิดพลาด และถ้าตัวเลือกคอนฟิก  track_errors ใน php.ini เป็น on
 
       
      ทดสอบสถานะตัวแปร
              PHP มีฟังก์ชันทดสอบสถานะของตัวแปรหลายฟังก์ชัน 
              isset ()  ใช้ชื่อตัวแปรเป็น อากิวเมนต์ และ  ส่งออก TRUE ถ้าตัวแปรมีอยู่ กรณีอื่นเป็น FALSE  
        int  isset  (mixed  var); 
      unset () ใช้กำจัดตัวแปร  และส่งค่าออกเป็น TRUE  
      int  unset  (mixed var);  
      empty()  ใช้ตรวจสอบว่าตัวแปรมีอยู่และเป็นค่าว่างหรือเป็นศูนย์  ส่งออกค่าเป็น TRUE หรือ FALSE ตามกรณี  
      int empty (mixed var);  
      ตัวอย่างการใช้ ฟังก์ชัน และ เขียนคำสั่งลงในสคริปต์  
        echo   isset($shompooqty); 
        echo  isset($nothere); 
        echo  empty($shampooqty); 
        echo  empty($nothere); 
       ตัวแปร $shampooqty  จะส่งออกค่า TRUE จาก isset() ไม่ว่ามีได้รับค่าจากฟิลด์ของฟอร์มหรือไม่ ส่วน empty() ขึ้นกับการรับค่า  
	  ตัวแปร  $nothere ไม่มีอยู่จริง ดังนั้นจะส่งออกค่า FALSE จาก  isset() และให้ผลลัพธ์ TRUE จาก  empty()  ฟังก์ชันเหล่านี้สามารถใช้สร้างความมั่นใจว่ามีการป้อนค่าให้กับฟิลด์ในฟอร์ม  
	
     
	  
	  			 |