On Mon, May 15, 2023 at 8:18 PM Rowan Tommins <rowan.coll...@gmail.com> wrote:
>
> On 15 May 2023 18:44:47 BST, Robert Landers <landers.rob...@gmail.com> wrote:
> >use const \NoExist\TEST;
> >use \NoExist\Channel;
> >echo TEST;
> >echo Channel::class;
> >
> >the output is:
> >
> >Undefined constant "TEST" in ...
> >Channel
>
> I'm not sure how you got that; according to https://3v4l.org/gltKN only PHP 
> 5.6 has a message with the unqualified name:
>
> > Notice: Use of undefined constant TEST - assumed 'TEST' in /in/gltKN on 
> > line 5
>
> Before that, there was no "use const", and in every version after that, it's 
> a fatal error with the fully qualified name:
>
> > Fatal error: Uncaught Error: Undefined constant "NoExist\TEST" in 
> > /in/gltKN:5
>
> Take the constant part away so that the next line runs, and 
> https://3v4l.org/q0XQO shows the fully qualified name right back up PHP 5.5, 
> because expanding the name is actually the *only* thing that ::class does in 
> that context.
>
> Regards,
>
> --
> Rowan Tommins
> [IMSoP]
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>

php --version
PHP 8.2.6 (cli) (built: May 12 2023 06:24:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.6, Copyright (c) Zend Technologies
with Zend OPcache v8.2.6, Copyright (c), by Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans

php -a
Interactive shell

php > use \NoExists\Channel;
php > echo Channel::class;
Channel

Turns out, it's a CLI specific thing, when running in a file, it does
indeed output the full name. I stand corrected; I tend to use the CLI
for testing out stuff.

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to