Skip to content

var_export() combined with enum produces code unsuitable for inclusion in namespaces  #8232

Closed
@Ocramius

Description

@Ocramius

Description

Following code: https://3v4l.org/MKPpJ

<?php

namespace A;

enum Foo { case BAR; }

$bar = var_export(Foo::BAR, true);

echo <<<PHP
<?php

namespace Generated\Code;

echo $bar;
PHP;

Resulted in this output:

<?php

namespace Generated\Code;

echo A\Foo::BAR;

But I expected this output instead:

<?php

namespace Generated\Code;

echo \A\Foo::BAR;

To be more specific:

<?php

namespace Generated\Code;

-echo A\Foo::BAR;
+echo \A\Foo::BAR;

This allows for generated PHP expressions (primary use-case of var_export()) to contain enums.

Ref: Ocramius/ProxyManager#754 (comment)

PHP Version

8.1.4

Operating System

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions