/ / Php nâng cao / Comment (1)

Phương thức và thuộc tính tĩnh

Thông thường khi ta muốn truy xuất vào 1 phương thức hay 1 thuộc tính nào đó trong class thì chúng ta cần tạo 1 đối tượng mới,nhưng khi ta sử dụng phương thức tĩnh và thuộc tính tĩnh sẽ không cần tạo đối tượng mới.

Phương thức và thuộc tính tĩnh

– Khi muốn khai báo 1 thuộc tính hoặc 1 phương thức tĩnh ta thêm từ khóa: static đăng trước
– Khi muốn sử dụng phương thức hoặc thuộc tính tĩnh là sử dụng như sau:
+ Cú pháp:

tên_lớp::tên hằng/thuộc tính tĩnh/phương thưc tĩnh

+ Ví dụ:

<?php
class Color{
    static $color = “red”;//phương thức tĩnh
    public static function getColor() {
        return self::$color;
    }
}
echo Color::$color; //kết quả: red
echo Color::getColor();  //kết quả: red

Như các bạn thấy trong class Color ta có phương thức (getColor) và thuộc tính($color) tĩnh do đằng trước chúng có sử dụng static chúng ta có thể gọi trực tiếp các phương thức hay thuộc tính tĩnh trong class mà không cần khởi tạo đối tượng mới.

Chú ý:Khi sử dụng ta sẽ sử dụng self để thay cho $this

Hằng

Hằng trong một class được khai báo như là một thuộc tính và phương thức nhưng không có cơ chế đi kèm, hằng được định nghĩa bắt đầu từ khóa const tên hằng chữ cái in hoa, tên hằng không có dấu $ ở trước.

– Để sử dụng hằng trong một class ta dùng:

tên_class::tên hằng

– Ví dụ:

<?php
class Config{
   const HOST = "localhost";
   const USER = "root";
   const PASS = "";
   const DATA = “php";
}
echo Config::HOST; // hiển thị localhost

Kỹ thuật LAZY LOADING

Lazy loading là kỹ thuật rất quan trọng trong lập trình hướng đối tượng. Vì nhờ có nó ta có thể tiết kiệm được rất nhiều thao tác gọi nạp file khi sử dụng. Bản thân lazy loading sử dụng magic method (các phương thức đặc biệt trong PHP) để triệu gọi dữ liệu. Cụ thể là phương thức __autoload().

-Phương thức này sẽ được tự động gọi khi một đối tượng được khởi tạo. Cũng vì lý do đó mà chúng ta sử dụng nó để require() một file chứa lớp đó.

– Ví dụ:
Các bạn tạo 1 có tên color.php với nội dung:

<?php
class Color{
     public $color     = “red”; //thuộc tính
     function getColor() {
        return $this->color;
     }
}
?>

Sau đó tạo 1 file index.php ngang hàng với file color.php và có nội dung sau:

<?php
function __autoload($url)
{
    require("$url.php");
}
$obj = new Color;
echo $obj->getColor();
?>

– Như các bạn thấy khi muốn khởi tạo 1 đối tượng nào đó thì chúng ta cần chèn class đó vào để làm việc,nhưng trong file index.php chúng ta chỉ cần sử dụng phương thức __autoload() để gọi file tương ứng,bất kì đối tượng nào được khởi tạo thì sẽ chạy tới phương thức này.Khi khởi tạo đối tượng Color,thì tham số $url trong phương thức __autoload() cũng chính là tên class được khởi tạo lên trong phương thức này chúng ta sẽ sử dụng require(“$url.php”); để gọi tới class tương ứng với điều kiện tên file phải trùng với tên class.



04/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

One comment

  1. Hải says:
     /  Reply

    Rất hữu ích, cảm ơn tác giả

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL