Hàm property_exists trong PHP là gì ?

05/08/2022 - lượt xem
Chia sẻ
 
5/5 - (1 bình chọn)

Hàm property_exists() trong PHP có nhiệm vụ xem trong Object hoặc một Class có thuộc tính nào đó không. Việc xem xét 1 thuộc tính có tồn tại trong đối tượng là cần thiết trước khi sử dụng trong PHP. Hàm property_exists cũng hữu ích khi kết hợp cùng các hàm magic trong php.

Cú pháp

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

property_exists ( mixed $class , string $property ) : bool

Tham số truyền vào 

  • $class là tên class cần kiểm tra.
  • $property là thuộc tính cần kiểm tra.

Cảnh báo

  • Khác với khi sử dụng isset(), property_exists() sẽ vẫn trả về là TRUE ngay cả trường hợp giá trị của phương thức là NULL.

Giá trị trả về

Hàm này trả về TRUE nếu trait tồn tại và FALSE nếu không tồn tại.

Ví dụ minh họa

<?php

class myClass {
    public $mine;
    private $xpto;
    static protected $test;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); //true
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //true, as of PHP 5.3.0
var_dump(property_exists('myClass', 'bar'));    //false
var_dump(property_exists('myClass', 'test'));   //true, as of PHP 5.3.0
myClass::test();

?>

Ứng dụng

Kiểm tra các thuộc tính động trong Object

<?php

class TestClass {

    public $declared = null;
   
}

$testObject = new TestClass;

var_dump(property_exists("TestClass", "dynamic")); // boolean false, as expected
var_dump(property_exists($testObject, "dynamic")); // boolean false, same as above

$testObject->dynamic = null;
var_dump(property_exists($testObject, "dynamic")); // boolean true

unset($testObject->dynamic);
var_dump(property_exists($testObject, "dynamic")); // boolean false, again.

var_dump(property_exists($testObject, "declared")); // boolean true, as espected

unset($testObject->declared);
var_dump(property_exists($testObject, "declared")); // boolean true, even if has been unset()

Trường hợp sử dụng namespace

<?
namespace MyNS;

class A {
    public $foo;
}

property_exists("A", "foo");          // false
property_exists("\\MyNS\\A", "foo");  // true
?>

Trong trường hợp bạn muốn kiểm tra các property khi sử dụng namespace bạn cần phải điền đầy đủ cả tên namespace thì hàm property_exists() mới có thể kiểm tra được.

Các hàm liên quan

  • method_exists() – Kiểm tra sự tồn tại của một phương thức.

Hi vọng với bài viết này, bạn đã hiểu rõ cách sử dụng hàm property_exists() 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

    5/5 - (1 bình chọn)

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

    Xem thêm