บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

PHP OOP - คลาสและออบเจกต์


คลาสคือเทมเพลตสำหรับออบเจ็กต์ และอ็อบเจ็กต์คือตัวอย่างของคลาส


OOP เคส

สมมติว่าเรามีคลาสชื่อ Fruit ผลไม้สามารถมีคุณสมบัติ เช่น ชื่อ สี น้ำหนัก ฯลฯ เราสามารถกำหนดตัวแปรเช่น $name, $color และ $weight เพื่อเก็บค่าของคุณสมบัติเหล่านี้

เมื่อวัตถุแต่ละชิ้น (แอปเปิ้ล กล้วย ฯลฯ) ถูกสร้างขึ้น วัตถุจะสืบทอดคุณสมบัติและพฤติกรรมทั้งหมดจากคลาส แต่วัตถุแต่ละชิ้นจะมีค่าคุณสมบัติต่างกัน


กำหนดคลาส

คลาสถูกกำหนดโดยใช้class คำสำคัญ ตามด้วยชื่อของคลาสและวงเล็บปีกกาคู่หนึ่ง ({}) คุณสมบัติและวิธีการทั้งหมดอยู่ในเครื่องมือจัดฟัน:

ไวยากรณ์

<?php
class Fruit {
  // code goes here...
}
?>

ด้านล่างเราประกาศคลาสชื่อ Fruit ซึ่งประกอบด้วยสองคุณสมบัติ ($name และ $color) และสองวิธี set_name() และ get_name() สำหรับการตั้งค่าและรับคุณสมบัติ $name:

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

หมายเหตุ:ในคลาส ตัวแปรจะเรียกว่าคุณสมบัติ และฟังก์ชันเรียกว่าเมธอด!


กำหนดวัตถุ

ชั้นเรียนไม่มีอะไรเลยหากไม่มีวัตถุ! เราสามารถสร้างวัตถุหลายชิ้นจากชั้นเรียน แต่ละอ็อบเจ็กต์มีคุณสมบัติและเมธอดทั้งหมดที่กำหนดไว้ในคลาส แต่จะมีค่าคุณสมบัติต่างกัน

ออบเจ็กต์ของคลาสถูกสร้างขึ้นโดยใช้newคีย์เวิร์ด

ในตัวอย่างด้านล่าง $apple และ $banana เป็นตัวอย่างของคลาส Fruit:

ตัวอย่าง

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

ในตัวอย่างด้านล่าง เราได้เพิ่มเมธอดอีกสองวิธีในคลาส Fruit สำหรับการตั้งค่าและรับคุณสมบัติ $color:

ตัวอย่าง

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>


PHP - $this คำสำคัญ

คีย์เวิร์ด $this อ้างถึงอ็อบเจ็กต์ปัจจุบัน และใช้ได้เฉพาะในเมธอด

ดูตัวอย่างต่อไปนี้:

ตัวอย่าง

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
?>

แล้วเราจะเปลี่ยนค่าของคุณสมบัติ $name ได้ที่ไหน? มีสองวิธี:

1. ภายในคลาส (โดยเพิ่มเมธอด set_name() และใช้ $this):

ตัวอย่าง

<?php
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?>

2. นอกคลาส (โดยเปลี่ยนค่าคุณสมบัติโดยตรง):

ตัวอย่าง

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?>

PHP - อินสแตนซ์ของ

คุณสามารถใช้instanceofคีย์เวิร์ดเพื่อตรวจสอบว่าอ็อบเจ็กต์เป็นของคลาสเฉพาะหรือไม่:

ตัวอย่าง

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>