วันพุธที่ 9 เมษายน พ.ศ. 2557

isset คืออะไร และใช้ตอนไหนกันบ่อยๆ ใน php

สำหรับ php บางเวอร์ชั่นนั้น น่าจะเจอกันบ้างนะครับกับ message ที่บอกว่า
PHP Notice: Undefined index
เรื่องราวก็ประมาณนี้
<?php
$x = $_GET['page']; 
<a href='?page=1'>คลิกไปยังหน้าแรก</a>
?>
ที่มันเตือนก็ตรงนี้ละครับ ตัว page นี้(ที่ highlight มันยังมิได้ถูกกำหนดค่า ซึ่งจะมีค่าก็ต่อเมื่อเราได้กดคำว่า คลิกไปยังหน้าแรก เพื่อไปหน้าเดิม แต่เอาค่าตัวแปร page=1 หิ้วไปด้วยครับ)
วิธีแก้มีหลายวิธีนะฮะ แต่ที่ผะ ผม จะเลือกมาก็คือ ไอ้เจ้าตัว isset 

ISSET
ตัวนี้มีหน้าที่ดักจับว่าตัวแปรไหนที่มีการส่งค่าแล้ว จะส่งค่ากลับไปเป็น 1 ส่วนตัวแปรไหนที่ครอบด้วย isset นี้ไม่มีค่า จะส่งค่ากลับเป็นค่าว่างครับตัวอย่าง
$a = 999;
echo "a= ".isset($a)."<br />";
echo "b= ".isset($b)."<br />";
ผลลัพธ์จะได้
a=1
b= 
กลับกันถ้าใส่ค่า $b เป็น null
$a = 999;
$b = '';
echo "a= ".isset($a)."<br />";
echo "b= ".isset($b)."<br />";
ผลลัพธ์จะได้
a=1
b=1
อาจสรุปได้ว่ามันจะให้ค่า true หรือ 1 สำหรับตัวแปรที่ได้ถูกกำหนดค่าเท่านั้น ไม่สนว่าค่านั้นจะเป็นอย่างไร จะเป็นค่าว่างมันนับหมดจ๊ะ

ย้อนกลับมาการแก้ปัญหาด้านบนสุดกันต่อ วิธีแก้คือ
<?php
if(isset($_GET['page']))
{
$x = $_GET['page'];
}
<a href='?page=1'>คลิกไปยังหน้าแรก</a>
?>

แค่นี้ละฮะง่ายจริงเชียว แถมยังเอาไปทำอะไรได้อีกตั้งหลายอย่าง ไอ้เจ้า isset เนี่ย นี่ผมเอาตัวอย่างมาให้ดู เฉพาะผมใช้ประจำ ฮาๆๆ