Hàm class_alias trong PHP là gì ?

05/08/2022 - lượt xem
Chia sẻ
 
Rate this post

Hàm class_alias() trong PHP là một hàm để tạo bí danh khác cho một class. Hàm này được sử dụng trên PHP5 và PHP7.

Cú pháp

Cú pháp hàm class_alias() trong PHP như sau:

class_alias ( string $original , string $alias [, bool $autoload = TRUE ] ) : bool

Tham số truyền vào 

  • $original  là tên class gốc.
  • $alias là tên bí danh.
  • $autoload là có tự động chạy _autoload() khi không có class $original. 

Giá trị trả về

Hàm này trả về giá trị TRUE nếu thành công và FALSE nếu thất bại.

Cảnh báo

Cách class_alias() sẽ không thể sử dụng với __autoload().

Ví dụ minh họa

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// the objects are the same
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// the classes are the same
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

Và kết quả trả về sẽ là

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Như ví dụ trên bạn có thể thấy Class với bí danh mới mang đầy đủ thuộc tính và phương thức của Class gốc.

Ứng dụng

Bạn có thể sử dụng class_alias() include file class nhanh hơn đồng thời giúp code dễ đọc hơn.

<?php
namespace Component;

if (version_compare(PHP_VERSION'5.4.0''lt')) {
    class_alias('My\ArrayObject''Component\ArrayObject');
} else {
    class_alias('ArrayObject''Component\ArrayObject');
}

class Container extends ArrayObject
{
}
?>

Ở ví dụ này cơ bản bạn đã hiểu cách sử dụng hàm class_alias().

Sử dụng class_alias() với interface

<?php
interface foo {}
class_alias('foo', 'bar');
echo interface_exists('bar') ? 'yes!' : 'no'; // prints yes!
?>

Sử dụng class_alias() bên trong một Class

<?php
class foo{
    function __construct(){  
        echo('yes!');
    }
}
class bar {
    function __construct(){
       
        class_alias('foo', 'fooAlias');
   
    }
   
    function test(){
       
        new fooAlias;
       
    }
}
$bar=new bar;
$bar->test(); // yes!

Thao tác với biến Static trong Class

<?php
class foo
{
    public static $count = 0;
}
class_alias('foo', 'bar');
bar::$count++;
echo foo::$count; // Output: 1
echo get_class(new Bar); // Output: foo
?>

Trong ví dụ này bạn có thể thấy $count trong Class gốc có giá trị là 1 nhưng khi tạo bí danh mới, và tăng giá trị $count thêm 1 thì biến static này cũng tăng đồng thời trên cả Class AliasClass gốc. Như vậy Class gốcclass alias thực sự là cùng một Class.

Các hàm liên quan

  • Hàm get_parent_class() lấy tên class cha của class hiện tại.
  • Hàm is_subclass_of() kiểm tra một class có phải là class con.

Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm class_alias() trong PHP. Nếu thấy bài viết hay và ý nghĩa, hãy like và chia sẻ với bạn bè để mọi người cùng nhau học tập nhé. Cảm ơn bạn đã ghé thăm codetutam.com                                                                                                                                                                      

 

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm