Edit report at https://bugs.php.net/bug.php?id=62169&edit=1

 ID:                 62169
 Updated by:         johan...@php.net
 Reported by:        valentiny510 at yahoo dot es
 Summary:            Use 'global' like a language structure
 Status:             Wont fix
 Type:               Feature/Change Request
 Package:            *Programming Data Structures
 Operating System:   Windows XP
 PHP Version:        5.4.3
-Block user comment: No
+Block user comment: Yes
 Private report:     N

 New Comment:

And we not about yours.


Previous Comments:
------------------------------------------------------------------------
[2013-07-28 17:02:30] valentiny510 at yahoo dot es

Joost if you can explain the 'evil' difference between this 2 examples and also 
tell me whitch is more 'hard to read' and why...
I will give you the Nobel prize por programming...

    function test( ) {
        return global $variable;
    }

    function test( ) {
        global $variable;
        return $variable;
    }

and... nobody asked you about your 'solution' with scope identifier
global:: can be more evil yes.. but I do not care about your opinion, sorry

------------------------------------------------------------------------
[2013-07-28 16:50:16] valentiny510 at yahoo dot es

Nikic you are really a php developer ?
Rasmus should choose better his team..

------------------------------------------------------------------------
[2012-10-21 22:07:25] ni...@php.net

As already noted in this thread, using globals is highly discouraged and as 
such it does not make sense to add any further functionality improving their 
use.

Also (you say this yourself) you can use $GLOBALS. I don't understand why you 
don't want to use it. Language features aren't added simply because someone 
says "Hey, I want to access globals in one expression, but I don't want to use 
$GLOBALs, please add a feature that is fully equivalent but uses a different 
syntax".

But even with the constraint of not using $GLOBALS you can easily build a 
function that would do something equivalent:

    function getGlobal($name) {
        global $$name;
        return $$name;
    }

    $foo = getGlobal('foo');

Marking this as Wontfix.

------------------------------------------------------------------------
[2012-10-21 21:06:48] joost dot koehoorn at gmail dot com

My solution would be to introduce global as a scope identifier, so you could 
use 
it as:

global::$object = new stdClass;
global::$object->test = 'This is just a test';

function test()
{
    return global::$object->test;
}


Although I do believe globals are evil and static class variables should be 
used 
at all times, this is a neat addition to avoid the very ugly and unclear global 
keyword.

As it is now, you have to define a variable as global for it to resolve and act 
on 
the global variable. This makes code hard to read as it is not directly visible 
that this is the case. The above syntax would solve this problem.

------------------------------------------------------------------------
[2012-06-02 01:01:48] valentiny510 at yahoo dot es

Imagine I have unset the, ( $GLOBALS )..
To access a 'global' object into the function, first must be called trowght 
global..

function test()
{
    global $object;
    return $object->some_method( );
}

I wonder if is posible to use (in the future :P) the 'global' like other 
language structures.. Ex:

function test()
{
    return( global $object->some_method( ) );
}

I know ... you will ask me why not use the namespaces, reflections, references, 
traits, or whatever.. but .. its not the point ...

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=62169


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=62169&edit=1

Reply via email to