Chợ24h

Tiêu đề: phương thức magic [In trang]

Thành viên: thamkk9489    Thời gian: 1/4/2016 16:37:13     Tiêu đề: phương thức magic

Trong bài giảng này, anh phải tìm hiểu về các phương thức magic. Một trong Tiêu chí giúp cho hướng đối tượng trở cần mẫn tiệp hơn khá nhiều.
Phương Thức Magic Trong OOP
Để giúp cho việc dùng các object trở phải thuận tiện hơn , lập trình PHP cơ bản đã cung cấp một vài phương thức magic , chúng thường được gọi khi có những action nhất định luôn luôn xảy ra trong các object. Điều này cho phép lập trình viên thực thi một số tác vụ hữu ích dễ dàng.
làm việc Constructors ( hàm Lập trình ) và Destructors ( hàm hủy )


Khi một object được khởi tạo , nó thường kèm theo nhu cầu Cài đặt một đôi thứ ngoài lề. Để xử lí điều này , PHP cung cấp phương thức magic__construct( ) , phương thức này cần phải tự động được gọi ngay khi một object mới được khởi tạo.
Nhằm minh họa cho khái niệm constructor , anh cần thêm một hàm Xây dựng ( constructor ) vàoMyclasscó nhiệm vụ xuất ra một thông cáo bất kỳ ( do chúng ta Cài đặt ) ngay khi có một object biểu lộ của class được khởi tạo.
class MyClass

    public $prop1 = "I'm a class property!";
  
    public function __construct( )
     
        echo 'The class "' , __CLASS__ , '" was initiated!
';
      
    public function setProperty( $newval )
     
        $this->prop1 = $newval;
      
    public function getProperty( )
     
        return $this->prop1. "
";
     

// Tạo object
$obj = new MyClass;
// echo giá trị tính chất $prop1
echo $obj->getProperty( );
echo "End of file.
";
?>

Tham khảo thêm tài liệutự học php cơ bản của Vietpro tại đây >>> hoc php

Chú ý—__CLASS__trả về tên của chính class gọi nó; nó được gọi đối lập với biến số magic ( magic constant ). Trong php căn bản , thì có một đôi hằng số magic , để tìm hiểu thêm về chúng mọi người tìm đọc trong PHP manual.
Đọc lại file trên trình duyệt , các anh phải thấy Cuối cùng như sau:
The class “MyClass” was initiated!
I’m a class property!
End of file.
Giúp gọi một hàm khi object bị hủy , các chị có sẵn phương thức magic__destruct( ).  Bình thường nó được dùng vào mục đích dọn dẹp một cái gì đó ( ví dụ: đóng một kết nối cơ sở dữ liệu ).
Để minh họa , mọi người cần xuất ra một đoạn báo cáo khi object bị hủy bằng cách dùng phương thức__destruct( )trong MyClass:
class MyClass

    public $prop1 = "I'm a class property!";
    public function __construct( )
     
        echo 'The class "' , __CLASS__ , '" was initiated!
';
     
    public function __destruct( )
     
        echo 'The class "' , __CLASS__ , '" was destroyed.
';
      
    public function setProperty( $newval )
     
        $this->prop1 = $newval;
      
    public function getProperty( )
     
        return $this->prop1. "
";
     

  
// Tạo object
$obj = new MyClass;
  
// Echo giá trị tính chất $prop1
echo $obj->getProperty( );
  
echo "End of file.
";
?>
Convert qua Một xâu
Nếu chị muốn echo MyClass ra dưới dạng chuỗi , các anh sẽ gặp lỗi. Để tránh được lỗi này , chị cần sử dụng một phương thức magic khác được gọi là__toString( ).
Trong trường hợp không có__toString( ) , mọi gắng gỏl để echo object ra dưới dạng chuỗi nên đều cho ra một kết quả lỗi trầm trọng ( fatal error ). Dưới đây là một  nếu về việc echo một object ra dưới dạng chuỗi mà không sử dụng một phương thức magic:
Ngoài những phương thức magic chúng ta đã bàn thảo ở đây , PHP còn cung cấp sẵn cho các anh một số phương thức magic khác. Để tìm hiểu thêm về danh sách các phương thức magic , các anh đọc thêm trong PHP manual.





  © Copyright 2011-2013 iSoftco®, All rights reserved
Văn phòng công ty: P.16/706, Tòa nhà Thành Công, 57 Láng Hạ, phường Thành Công, quận Ba Đình, Hà Nội
Tel: (84-4) 37 875018;(84-4) 3555 8604 | Fax: (84-4) 37 875017 | E-Mail: cho24h@isoftco.com