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 hàm class_alias() trong PHP như sau:
class_alias ( string$original
, string$alias
[, bool$autoload
=TRUE
] ) : bool
Hàm này trả về giá trị TRUE nếu thành công và FALSE nếu thất bại.
Cách class_alias() sẽ không thể sử dụng với __autoload().
<?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); ?>
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.
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().
<?php interface foo {} class_alias('foo', 'bar'); echo interface_exists('bar') ? 'yes!' : 'no'; // prints yes! ?>
<?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!
<?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 Alias và Class gốc. Như vậy Class gốc và class alias thực sự là cùng một Class.
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
Bình luận: