Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ออบเจ็กต์ (Objects) ใน PHP

นิยามและการใช้งาน

ใน PHP Object (ออบเจ็กต์) เป็นชนิดข้อมูลร่วม (compound data type) คล้ายกับอาร์เรย์ สามารถเก็บค่าประเภทต่างๆ หลายค่าไว้ในตัวแปรเดียวได้ ออบเจ็กต์เป็นอินสแตนซ์ของคลาสในตัว (built-in) หรือคลาสที่ผู้ใช้กำหนดเอง นอกจากคุณสมบัติ (properties) แล้ว คลาสยังกำหนดฟังก์ชันการทำงานที่เกี่ยวข้องกับข้อมูลอีกด้วย

ตัวแปรหลัก (scalar), อาร์เรย์ และออบเจ็กต์อื่นๆ สามารถแปลงเป็นชนิดข้อมูลออบเจ็กต์ได้โดยใช้ตัวดำเนินการแปลงชนิด (casting operator) PHP มี stdClass เป็นคลาสว่างสำหรับการใช้งานทั่วไป ซึ่งมีประโยชน์สำหรับการเพิ่มคุณสมบัติแบบไดนามิกและการแปลงชนิด

รูปแบบไวยากรณ์

เพื่อประกาศออบเจ็กต์ของคลาส ต้องใช้คำสั่ง new

class myclass {  ..  .. } $obj=new myclass;

ตัวอย่าง

<?php class SayHello{     function hello(){         echo "Hello World";     } } $obj=new SayHello; $obj->hello(); ?>

ผลลัพธ์

Hello World

ออบเจ็กต์ของ stdClass จะเริ่มต้นเป็น null สามารถเพิ่มคุณสมบัติได้แบบไดนามิก:

ตัวอย่าง

<?php $obj=new stdClass; $obj->name="Deepak"; $obj->age=21; $obj->marks=75; print_r($obj); ?>

ผลลัพธ์

stdClass Object(     [name] => Deepak     [age] => 21     [marks] => 75 )

อาร์เรย์สามารถแปลงเป็นออบเจ็กต์ได้ดังนี้:

ตัวอย่าง

<?php $arr=array("name"=>"Deepak", "age"=>21, "marks"=>75); $obj=(object)$arr; print_r($obj); ?>

ผลลัพธ์

stdClass Object(     [name] => Deepak     [age] => 21     [marks] => 75 )

ในทางกลับกัน ออบเจ็กต์ก็สามารถแปลงเป็นอาร์เรย์ได้:

ตัวอย่าง

<?php $obj=new stdClass; $obj->name="Deepak"; $obj->age=21; $obj->marks=75; $arr=(array)$obj; print_r($arr); ?>

ผลลัพธ์

Array(     [name] => Deepak     [age] => 21     [marks] => 75 )

ตัวแปรชนิดสเกลาร์ (scalar) ใดๆ ก็สามารถแปลงเป็นออบเจ็กต์ได้โดยการแปลงชนิด ค่าของตัวแปรสเกลาร์จะกลายเป็นค่าของคุณสมบัติ scalar ของออบเจ็กต์

ตัวอย่าง

<?php $name="Deepak"; $age=21; $percent=75.50; $obj1=(object)$name; print_r($obj1); $obj2=(object)$age; print_r($obj2); $obj3=(object)$percent; print_r($obj3); ?>

ผลลัพธ์

stdClass Object(     [scalar] => Deepak ) stdClass Object(     [scalar] => 21 ) stdClass Object(     [scalar] => 75.5 )