hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Lập trình PHP cơ bản
Khái niệm trait (đặc điểm) trong hướng đối tượng PHP

Khái niệm trait (đặc điểm) trong hướng đối tượng PHP

  • 14-03-2023
  • Toanngo92
  • 0 Comments

Khái niệm trait trong PHP

Một lớp trong PHP chỉ hỗ trợ kế thừa đơn. Một lớp con chỉ có thể kế thừa từ một lớp cha duy nhất. Trong các ứng dụng lớn, thay vì tạo mọi thứ từ đầu, nên sử dụng lại các lớp hoặc kiểu đã được xác định và xây dựng thêm chức năng của chúng. Một trong những lợi thế lớn nhất mà OOP mang lại là khả năng sử dụng lại. Để kế thừa nhiều hành vi, PHP sử dụng một khái niệm gọi là traits (đặc điểm).

Một traits tương tự như một class và có thể chứa các hằng số, thuộc tính và phương thức. Nó có thể được sử dụng để nhóm chức năng trong một cấu trúc duy nhất.

Cú pháp:

<?php
trait TraitName{
// todo
}

Người dùng không thể tự khởi tạo một trait. Nó phải được sử dụng trong một lớp với từ khóa use.

Cú pháp:

<?php
class ClassName{
    use TraitName;
}

Ví dụ:

<html>
    <body>
        <?php
            trait ExampleTrait { 
                public $name = "PHP Tutorial";
                public function msg1() {
                    echo "This is an example of a trait";
                }
            }             
            class Message {
                use ExampleTrait;
            }
             
            $obj = new Message();
            $obj->msg1(); 
            echo '<br/>';
            echo $obj->name;
        ?>
    </body>
</html>

Một số đặc điểm khi sử dụng trait:

Với trait, người dùng có thể khai báo các phương thức có thể được sử dụng trong nhiều hơn một class

  • Giảm mã dư thừa trong dự án
  • Bạn không thể tự khởi tạo một trait.
  • Trait được phép có các phương thức và phương thức trừu tượng trong bất kỳ chế độ hiển thị nào (public, private, protected)
  • Các đặc điểm được khai báo giống như của phương thức, nhưng với từ khóa trait làm tiền tố

Kết hợp nhiều traits:

<?php

trait Dungchung{
    private $name;
    public $classs;
    public $birthday;
    public $gender;
    public $subject;
    
    public function dungchung(){
        echo "Dung chung";
    }
    public function funcso2(){
        echo "func so 2";
    }
}

trait MotSoTinhNangKhac{
    public function funcso3(){
        echo "func so 3";
    }
}

trait MotSoTinhNangKhac2{
    public function funcso4(){
        echo "func so 4";
    }
}

class Sinhvien{
    use Dungchung, MotSoTinhNangKhac;
    // property
    // method
    // constructor => ham nay se chi khi doi tuong bat dau khoi tao
    public function __construct()
    {
    }

    public function getName(){
        return $this->name;
    }

    public function setName($name){
        $this->name = $name;
    }

}

 $sv = new Sinhvien();
 $sv->classs = 'c2111l';
 $sv->dungchung();
// $sv->setName('Nguyen Van A');
echo '<pre>';
var_dump($sv);
echo '</pre>';

// var_dump($sv instanceof Sinhvien);

class SinhvienObj{
    use Dungchung, MotSoTinhNangKhac2;
   
    // property
    // method
    // constructor => ham nay se chi khi doi tuong bat dau khoi tao
    public function __construct($name,$class,$birthday,$gender,$subject)
    {
        $this->name = $name;
        $this->classs = $class;
        $this->birthday = $birthday;
        $this->gender = $gender;
        $this->subject = $subject;
    }

    public function getName(){
        return $this->name;
    }

    public function setName($name){
        $this->name = $name;
    }

    // public function __destruct()
    // {
    //     $this->name = "Toi la toan";
    //     echo 'Destruct student '.$this->name;
    // }

}

$sv2 = new SinhvienObj('Nguyen Van A','A','01/01/2000','Nam','Toan , Ly');
echo '<pre>';
var_dump($sv2);
echo '</pre>'; 

$sv2->dungchung();

Bài viết liên quan:

Hướng dẫn sử dụng xdebug để gỡ lỗi PHP bằng visual studio code môi trường windows
Hướng dẫn cấu hình Extension live server tự động tải lại PHP khi cập nhật file trên visual studio code
Kỹ thuật AJAX trong PHP
Làm việc với JSON trong PHP
Chuyển hướng trình duyệt, download file bằng HTTP Header trong PHP
Một số cải tiến mới của PHP 8
Nhận dạng trình duyệt và nền tảng trong PHP
Từ khóa final, static, overloading và magic method trong PHP
Abstract Class (lớp trừu tượng) trong PHP
Interface trong hướng đối tượng PHP
Method (phương thức), public,private,protected, method overriding trong hướng đối tượng PHP
Iterable và iterator trong PHP

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×