如何在php中创建匿名对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

正如我们所知,在JavaScript中创建匿名对象很简单,就像下面的代码一样:

var object = { 
    p : "value", 
    p1 : [ "john", "johnny" ] } ; 
alert(object.p1[1]) ;

输出:

an alert is raised with value "johnny"

在PHP的情况下可以应用这种相同的技术吗?我们可以在PHP中创建匿名对象吗?

提问于
用户回答回答于

在php-7中可以创建匿名类,所以你可以做这样的事情:

<?php

    class Foo {}
    $child = new class extends Foo {};

    var_dump($child instanceof Foo); // true

?>

可以在RFC(它被接受)阅读更多关于这个:https//wiki.php.net/rfc/anonymous_classes

但我不知道它是如何实现的Javscript,所以它们可能是JavaScript和PHP中的匿名类之间的一些差异。

用户回答回答于

谈论时,“匿名”不是正确的术语。最好说“匿名类型的对象”,但这不适用于PHP。

PHP中的所有对象都有一个类。“default”类是stdClass,你可以这样创建它的对象:

$obj = new stdClass;
$obj->aProperty = 'value';

还可以利用将数组转换为对象以获得更方便的语法:

$obj = (object)array('aProperty' => 'value');
print_r($obj);

扫码关注云+社区