• Today I have found a new unusual problem of PHP global variables in WordPress. ( It may be my problem). I was trying to change the wp global variable $current_user in a user define function by calling global keyword. My code was

    <?php
    function add_some_user_info()
    {
    global $current_user; #Global Variable Generated By WP Core
     $current_user->new_info="My New Value"; # Remember this line
    
    }
    echo "<pre>";print_r($current_user);echo "</pre>";
    ?>

    Output: Showing WP current user object with my additional Value.
    When I use $current_user=”Test Value”; Output: Test Value
    When I use $current_user=false or null or 0; Output should be blank but it is showing WP current user object without no change. That means I can not change $current_user object to delete, null, false or zero but can change with some string. How it works?
    Then I guessed that $current_user variable may be protected by a different way.(What is the technique?)

    I tested the following codes to identify the PHP Global variable rule.

    <?php
    $test="<br>First Value<br>";
    function test_function()
    {
    global $test;
    echo $test;
    $test="<br>Second Value Changed by Function<br>";
    }
    test_function();
    echo "<pre>";print_r($test);echo "</pre>";
    ?>

    I wrote the above code in a normal.php file and run it.
    Output:

    First Value
    Second Value Changed by Function

    ———————

    Then I wrote the same code beginning of a WordPress theme file header.php and run it.

    Output:
    First Value
    ————–

    Why these different output in normal.php file and wordPress header.php file ?

    If anybody confused about my words test my codes in a simple file and a WP theme file.
    Have You Any Correct Explanation About This Problem?
    I Wrote This Problem Here

  • The topic ‘Does WordPress Control Global Variables in a Different Way?’ is closed to new replies.