$aVal = array();$aVal
(object)$oVal = "";$oVal->key1->var1 = "something";$oVal->key1->var2 = "something else";
$x = new stdClass();A comment in the manual sums it up best:
stdClass is the mặc định PHP object. stdClass has no properties, methods or parent. It does not support magic methods, and implements no interfaces.
Bạn đang xem: The basics
When you cast a scalar or array as Object, you get an instance of stdClass. You can use stdClass whenever you need a generic object instance.
The standard way lớn create an "empty" object is:
$oVal = new stdClass();But, with PHPhường >= 5.4, I personally prefer lớn use:
$oVal = (object)<>;It"s shorter and I personally consider it clearer because stdClass could be misleading to novice programmers (i.e. "Hey, I want an object, not a class!"...).
The same with PHP $oVal = (object) array();(object)<> is equivalent lớn new stdClass().
Xem thêm: Sửa Lỗi Tiếng Anh Siêu Hiệu Quả, Sửa Lỗi Trong Tiếng Tiếng Anh
See the PHP manual (here):
stdClass: Created by typecasting khổng lồ object.
If an object is converted khổng lồ an object, it is not modified. If a value of any other type is converted lớn an object, a new instance of the stdClass built-in class is created.
and here (starting with PHPhường 7.3.0, var_export() exports an object casting an array with (object)):
Now exports stdClass objects as an array cast to lớn an object ((object) array( ... )), rather than using the nonexistent method stdClass::__setState(). The practical effect is that now stdClass is exportable, & the resulting code will even work on earlier versions of PHP.
Xem thêm: Tải Game Ông Trùm Poker Apk Download For Android, Ông Trùm Poker Apk 1
However rethành viên that empty($oVal) returns false, as
Objects with no properties are no longer considered empty.
Regarding your example, if you write:
$oVal = new stdClass();$oVal->key1->var1 = "something"; // PHP creates a Warning here$oVal->key1->var2 = "something else";PHPhường creates the following Warning, implicitly creating the property key1 (an object itself)
Warning: Creating default object from empty value
This could be a problem if your configuration (see error reporting level) shows this warning lớn the browser. This is another entire topic, but a quick và dirty approach could be using the error control operator (
) to ignore the warning: