dsoxcj7276 2014-12-31 19:17
浏览 52
已采纳

打印$ GLOBALS私有静态属性未显示

I am practicing the singleton pattern using several examples. My code so far:

class LimitedEditionBuggati {
    private $props = array(
                            'speed'     => 256,
                            'cylinders' => 18,
                            'color'     => 'metalic silver',
                            'hp'        => 1200,
                            'price'     => 5000000,
                            'vin'       => 'the one'
                           );
    private static $instance;

    private function __construct(){}

    public static function instance() {
        if( empty($instance) ) {
            return new LimitedEditionBuggati();
        }
        return self::$instance;
    }

    public function getProperty( $property ) {
        return $this->props[$property];
    }
}

$myCar = LimitedEditionBuggati::instance();

How come the private static $instance does not get printed using print_r( $GLOBALS )?

  • 写回答

1条回答 默认 最新

  • douji5746 2014-12-31 22:59
    关注

    How come the private static $instance does not get printed using print_r( $GLOBALS )?

    Even though static class variables are variables that exist once and only once - as it is similar with global variables - they are not globally visible through $GLOBALS because they are not global variables in PHP.

    You can compare that with static variables inside a function (perhaps a better known concept for you):

    function my_function()
    {
        static $variable = 1;
    }
    
    my_function();
    print_r($GLOBALS);
    

    Even though the static variable $variable exists once and only once - similar to a global variable, it is just, that it is not visible in $GLOBALS.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ssh登录页面的问题
  • ¥60 渗透一个指定银行app,拿到客户信息,需要什么级别
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图