在 PHP 中从空值创建默认对象

Subodh Poudel 2023年1月30日
  1. 在 PHP 中创建一个 stdClass() 对象
  2. 在 PHP 中将数组类型转换为对象
  3. 在 PHP 中从匿名类创建对象
在 PHP 中从空值创建默认对象

我们将介绍一些在 PHP 中创建对象的方法,以及解决 creating default object from empty value 错误的一些方法。

在 PHP 中创建一个 stdClass() 对象

当我们尝试在不初始化对象的情况下分配对象的属性时,将抛出错误。错误会说从空值创建默认对象。该错误还取决于 php.ini 文件中的配置。当错误在配置中被抑制时,这样的脚本就不会抛出错误。改配置文件来抑制错误来摆脱它不是更好。相反,我们可以创建一个 stdClass() 对象来消除错误。当我们在全局命名空间中将变量声明为 stdClass() 的对象时,我们可以动态地为这些对象分配属性。

例如,创建一个变量 $obj 并将其设置为 NULL。然后,使用 $obj 对象将 success 属性设置为 false。在这种情况下,将抛出错误,如输出部分所示。这是因为 $obj 还没有被初始化为一个对象。

示例代码:

$obj = NULL;
$obj->success = true;

输出:

Warning: Creating default object from empty value

要消除错误,首先,将 $obj 变量分配给 stdClass() 的实例。接下来,使用 $objsuccess 属性设置为 true。然后,使用 print_r() 函数打印 $obj 对象。最好使用 isset() 函数来检查 $obj 是否已经存在。我们可以在输出部分看到有关 $obj 的信息。因此,我们可以通过创建 stdClass() 的对象来消除错误。

示例代码:

$obj = new stdClass();
$obj->success =true;
print_r($obj);

输出:

stdClass Object ( [success] => 1 ) 

在 PHP 中将数组类型转换为对象

我们可以在数组之前使用 object 关键字将数组类型转换为对象。这样就可以创建对象了。然后,我们可以将属性分配给对象。由于我们已经初始化了对象,因此在分配对象的属性时不会抛出错误。此方法还创建 stdClass() 类的对象。

例如,创建一个变量 $obj 并将其分配给 array() 函数。然后,在 array() 之前的括号中写入 object 关键字。数组已转换为对象。然后,使用 $objtrue 值分配给 success 属性。最后,使用 print_r() 函数打印对象。通过这种方式,我们可以创建一个类型转换数组的对象并摆脱错误。

示例代码:

$obj = (object)array();
$obj->success =true;
print_r($obj);

输出:

stdClass Object ( [success] => 1 ) 

在 PHP 中从匿名类创建对象

我们可以从 PHP 中的匿名类创建一个对象并为其分配属性。我们可以使用 new class 关键字来创建一个匿名类。我们可以像在泛型类中一样设置属性的值。由于属性将有一个类,并且我们可以使用对象访问它,因此不会抛出错误。

例如,创建一个对象 $obj 使用 new class 关键字为该对象分配一个匿名类。然后创建一个 public 属性 $success 并将值设置为 true。在类之外,使用 print_r() 函数打印对象。通过这种方式,我们可以从 PHP 中的匿名类创建一个对象并防止错误。

示例代码:

$obj = new class {
 public $success = true;
};
print_r($obj);

输出:

class@anonymous Object ( [success] => 1 ) 
作者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

相关文章 - PHP Object