zoukankan      html  css  js  c++  java
  • 在static的function静态函数中访问成员变量

    class A{
        private $url;
    
    public function __construct(){
               $this->url = $_SERVER['PATCH_INFO'];
    
        }
    
    public static function get(){
            var_dump(self::$url);//出错,说静态变量未初始化
    
            var_dump($this->url);//也出错,说无法使用this;
    
        }
    
    }
    get里想取出$url该如何实现?方法如下:
    class A {
        //方法1
        private static $url;
        public static function setDefaultUrl($url) {
            self::$url = $url;
        }
        public static function getDefaultUrl() {
            return self::$url;
        }
    }
    //方法2,在静态方法中获得实例,当然这样的话可能达不到你预期的效果,推荐还是使用上面的方法。
    class A {
        private $url = 'demo';
        public static function getUrl() {
            //实例化
            $obj = new self();
            return $obj->url;
        }
    } 
    
    
    对于类的成员变量和方法:
    1.如果一个被引用的变量或方法定义时使用了static或const,那么必须使用::访问。
    2.如果一个被引用的变量或方法定义时没有使用static或const,那么必须使用->访问。
    3.如果要访问一个被static或const修饰的变量或方法,那么必须使用self访问。
    4.如果要访问一个没有被static或const修饰的变量或方法,那么必须使用$this访问。
  • 相关阅读:
    拨号进入防盗界面
    手机开机或启动广播接收者
    time、datetime
    py 包和模块,软件开发目录规范
    递归函数
    匿名函数,内置函数
    三元表达式,列表生成式,生成器生成式
    迭代器,生成器
    XPath
    闭包,装饰器
  • 原文地址:https://www.cnblogs.com/-mrl/p/8691088.html
Copyright © 2011-2022 走看看