色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

get object vars php

劉柏宏1年前7瀏覽0評論
在PHP中,我們經常需要獲取一個對象的屬性列表。為了方便,PHP提供了get_object_vars()函數。該函數可以返回一個數組,其中包含對象的所有屬性,以及它們的值。下面來看一個例子:
class Book {
public $title;
public $author;
public $price;
public function __construct($title, $author, $price) {
$this->title = $title;
$this->author = $author;
$this->price = $price;
}
public function display() {
echo $this->title . " by " . $this->author . " costs $" . $this->price;
}
}
$book = new Book("Harry Potter", "J.K. Rowling", 10.99);
$vars = get_object_vars($book);
print_r($vars);
當我們運行以上代碼時,我們會得到以下輸出:
Array
(
[title] =>Harry Potter
[author] =>J.K. Rowling
[price] =>10.99
)
正如我們預期的那樣,這個數組包含了我們在Book類中定義的所有屬性。接下來我們來更深入地了解get_object_vars()函數。 get_object_vars()函數只接受一個參數,即要獲取屬性列表的對象。給定一個對象,該函數會返回一個數組,其中包含所有公共屬性的名稱和值。私有屬性和受保護的屬性不能從類的外部訪問,因此也不能從get_object_vars()函數中獲取。下面是一個例子:
class Person {
public $name;
protected $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}
$person = new Person("Bob", 30);
$vars = get_object_vars($person);
print_r($vars);
在以上代碼中,我們嘗試獲取Person對象的屬性列表,但我們只得到了一個數組,其中只包含了一個公共屬性$name。這是因為$age屬性是受保護的,get_object_vars()函數不能獲取它的值。 如果你嘗試獲取一個對象的類中未定義的屬性,get_object_vars()函數會返回一個空數組。下面是一個例子:
class Car {
public $make;
public $model;
}
$car = new Car();
$car->year = 2020;
$vars = get_object_vars($car);
print_r($vars);
因為我們在Car類中沒有定義$year屬性,get_object_vars()函數只返回了Car對象的已定義屬性$make和$model的值。 get_object_vars()函數不能用于獲取類的靜態屬性。它們只能通過類名稱直接訪問,如下例所示:
class MyClass {
public static $variable = "Hello, world!";
}
$vars = get_object_vars('MyClass'); // Returns an empty array
我們不能通過get_object_vars()函數獲取MyClass類的靜態屬性$variable的值。因為它不是一個對象的屬性,而是一個類的屬性。 總之,在PHP中,get_object_vars()函數是獲取對象屬性列表的有用函數。雖然它不能獲取類的受保護或私有屬性,但對于公共屬性而言,它確實很方便。
上一篇get php mysql