lpeltier/struct

v2.1.1 2018-10-11 12:03 UTC

This package is auto-updated.

Last update: 2024-09-12 03:34:21 UTC


README

PHP 的类似 struct 的 trait。

用法

通过在类中使用 struct trait 并声明 public 属性来创建一个 struct。然后您可以使用箭头 (->) 操作符读取和写入这些属性。任何尝试访问未定义、受保护或私有属性的操作都将引发异常。
您还可以使用构造函数一次性设置所有属性。

示例

<?php

use lpeltier\Struct;

class Foo
{
    use Struct;

    public $foo = 'default';
    public $bar;
}

$foo = new Foo(['bar' => 0x2A]);

var_dump($foo->foo); // 'default'
var_dump($foo->bar); // 42
var_dump($foo->baz); // throws an exception

原因

PHP 在您设置未知属性时自动创建它们,甚至不会抛出警告。这可能导致那些难以发现的愚蠢错误,因为您将 'nuw' 写成了 'num'。