PHP: PHP Hypertext Preprocessor

Home

PHP Tutorial
Knowledge Developer Database Internet Resource
ภาษา PHP
1. ประเภทข้อมูล
2. การแปลงประเภทข้อมูล
3. ตัวแปรและค่าคงที่
4. Operator
5. การใช้ Operator คำนวณผลรวมของฟอร์ม
6. โครงสร้างควบคุม
 
PHP เบื้องต้น
1. เริ่มต้นด้วย PHP
2. ภาษา PHP
3. การทำงานไฟล์ และไดเรคทอรี
4. การทำงานกับ Array
5. การควบคุมข้อความ และนิพจน์ปกติี่
6. คำสั่งใช้ใหม่และฟังก์ชัน
7. Object Oriented Programming
 
PHP
PHP เบื้องต้น
การสร้างโปรแกรมประยุกต์เว็บ
PHP ระดับสูง
 
Internet
PHP
SSI
HTML
AJAX
 
PHP เบื้องต้น > ภาษา PHP

การแปลงประเภทข้อมูล

ตามที่ได้กล่าวไว้ว่า PHP เป็นภาษา richly type และ engine สามารถแปลงระหว่างประเภทข้อมูลต่างกันในเวลาเรียกใช้

PHP สามารถแปลงหรือเจาะจงประเภทข้อมูลได้

วิธีพื้นฐาน

วิธีพื้นฐานในการแปลงประเภทข้อมูลตัวแปรมี 2 วิธีคือ    

การแปลงประเภทเชิงนัยยะ

การแปลงเชิงนัยยะ (implicit conversion) เป็นการประเภทข้อมูลที่เกิดขึ้นโดย PHP engine อย่างอัตโนมัติ เมื่อมีการประมวลผล PHP จะกำหนดประเภทข้อมูลให้ตัวแปรให้ตามความเหมาะสม

  1. การคำนวณเลขคณิต ถ้ามี operand ที่เป็น integer กับอีกตัวเป็น float จากนั้นตัวแรกจะได้รับการประเมินเป็น float ถ้า operand เป็น string และอีกตัวเป็น integer กรณีนี้ PHP จะแปลง string เป็น integer ก่อนการคำนวณ
  2. นิพจน์ Boolean สำหรับกรณีการประเมินนิพจน์ Boolean ผลลัพธ์ที่เกิดขึ้น PHP จะแปลงเป็น Boolean ก่อนทำงานต่อไป
  3. เมธอดที่ต้องการ string เมธอดหรือ operator เช่น echo, print หรือ string concatenation operator (.) ต้องการอากิวเมนต์หรือ operand เป็น string ในกรณีนี้ PHP จะแปลงตัวแปรที่ไม่ใช่ข้อความให้เป็นข้อความ

การแปลงประเภทเชิงประจักษ์

ถึงแม้ว่า PHP จะแปลงตัวแปรให้อย่างอัตโนมัติ แต่ยังมีทางเลือกในการระบุประเภทข้อมูลได้เองด้วยการบังคับให้ภาษาแปลงประเภทข้อมูลโดยทำในสิ่งที่เรียกว่า type cast การกำหนดให้เติมหน้าตัวแปรด้วยประเภทข้อมูลในวงเล็บ จากนั้น PHP จะพยายามแปลงให้

  1. (int), (integer) แปลงเป็นเลขจำนวนเต็ม integer
  2. (float), (double), (real) แปลงเป็นเลขทศนิยม float
  3. (string) แปลงเป็นข้อความ string
  4. (bool), (boolean) แปลงเป็นค่า Boolean
  5. (array) แปลงเป็น array
  6. (object) แปลงเป็น object

<?php

$testvar = 3.7;
$result = int($testvar);               // ผลลัพธ์เป็นจำนวนเต็ม 3

?>

การเจาะจงแปลงประเภทข้อมูล

ตัวอย่างการแปลงเป็น integer

<?php

echo (int)"642";  // แสดงผล 642
echo (int)"+5678"; // แสดงผล 5678
echo (int)"84e2";  // 84 - หยุดการกระจายที่ e
echo (int)"3 ตัว"; // 3 - หยุดที่ช่องว่าง
echo (int)"หมู 3 ตัว"; // 0 - ไม่ใช่ตัวเลข
echo (int)"0642";  // 642 - เลขฐาน 10 เท่านั้น
echo (int)"0xff"; // 0 - เลขฐาน 10 เท่านั้น หยุดที่ x
echo (int)"-4321"; // -4321 - จำนวนลบ
echo (int)".324243"; // 0 - หยุดที่ .

?>

ตัวอย่างการแปลงเป็น float

<?php

$float1 = (float)"+4567";  // ค่า float : 4567.0
$float2 = (float)"-123";  // -123.0
$float3 = (float)"123.456"; // 123.456
$float4 = (float)"1.23456e2"; // 123.456
$float5 = (float)"1.234e-2";  // 0.001234
$float6 = (float)"1000000000000"; // 1e12 (หนึ่งล้านล้าน)

?>

ตัวอย่างการแปลงเป็น Boolean

<?php

// การแปลงจากค่าตัวเลข integer และ float  
$bool1 = (bool)0; // FALSE
$bool2 = (bool)0.0;  // FALSE
$bool3 = (bool)-10;  // TRUE
$bool4 = (bool)456456e-12; // TRUE
$bool5 = (bool)(0.3 + 0.2 - 0.5);  // TRUE - เพราะไม่เท่ากับ 0 พอดี


// การแปลงจาก string

 
$bool6 = (bool)"happy"; // TRUE
$bool7 = (bool)"";  // FALSE
$bool8 = (bool)"0";  // FALSE
$bool9 = (bool)"TRUE"; // TRUE
$bool10 = (bool)"FALSE"; // TRUE! ไม่ใช่ค่าว่างและไม่ใช่ "0"

?>

ตัวอย่างการแปลงเป็นอ๊อบเจค

<?php

$variable = (object)234.234;
echo $variable->scalar;           // 234.234

?>

การแปลงตัวแปรหรือนิพจน์เป็น array สามารถใช้ประเภทข้อมูล (array) หรือฟังก์ชัน array โดยจะแปลงเป็น 1 หน่วยข้อมูลของค่าตัวแปรหรือนิพจน์นั้น

ส่วนอ๊อบเจคแปลงเป็น array ได้ โดย คีย์มาจากชุดของตัวแปรสมาชิกและค่ามาจากค่าของตัวแปรสมาชิกในอ๊อบเจค

ฟังก์ชันประเภทข้อมูล

ฟังก์ชันที่มีประโยชน์ในความเข้าใจกับประเภทข้อมูลและตัวแปรใน PHP

is_type

ฟังก์ชันกลุ่มนี้ใช้บอกประเภทข้อมูลของตัวแปร

  1. is_integer
  2. is_float
  3. is_numeric (ส่งออก TRUE ถ้าอากิวเมนต์เป็น float, integer หรือ ข้อความตัวเลข)
  4. is_string
  5. is_bool
  6. is_array
  7. is_object
  8. is_null

ฟังก์ชันเหล่านี้ส่งออกค่า Boolean ที่บอกค่าเป็นประเภทข้อมูลที่ระบุว่าใช่ (TRUE) หรือ ไม่ใช่ (FALSE)

gettype

ฟังก์ชัน gettype บอกประเภทข้อมูลของตัวแปรหรือนิพจน์ ด้วยการส่งออกค่าต่อไปนี้

  1. "boolean"
  2. "integer"
  3. "double" (หมายเหตุ ตามเหตุผลทางประวัติศาสตร์ และไม่ส่งออกค่าเป็น float)
  4. "string"
  5. "array"
  6. "object"
  7. "resource"
  8. "NULL"
  9. "unknown type"

  settype

ฟังก์ชัน settype ต้องการ 2 อากิวเมนต์คือ ตัวแปร และประเภทข้อมูลที่ต้องการแปลง ด้วยการระบุเป็นนิพจน์ข้อความ ฟังก์ชันนี้ส่งออกค่า Boolean ที่ระบุถึงความสำเร็จ ตัวแปรนั้นจะถูกปรับปรุง

<?php

$var = 743.256;
settype($var, "string");

// $var มีค่า "743.256" และประเภทเป็น string

?>

 


  

สงวนลิขสิทธิ์ (C) widebase / Julaphak