php - OO PHP 从另一个类访问公共(public)变量

标签 php oop

我有一个类如下:

class game {

    public $db;
    public $check;
    public $lang;

    public function __construct() {

        $this->check = new check();

        $this->lang = DEFAULT_LANG;
        if (isset($_GET['lang']) && !$this->check->isEmpty($_GET['lang']))
            $this->lang = $_GET['lang'];
    }

}

如您所见,我有一个公共(public)变量 $lang,它也是通过构造函数定义的。

问题是我想从与这个类没有直接关系的其他类访问这个变量的结果,因为我不想为每个不同的类重新声明它。

例如,我如何从另一个类中调用该变量的结果,让我们称之为 class Check

最佳答案

如果您将 public $lang; 标记为静态:

public static $lang;

你可以通过game::$lang;访问它

如果不是静态的,你需要创建一个游戏实例并直接访问它:

$game = new game;
$game->lang;

(当前)类内部的静态调用:

self::$lang;

late static bound调用(对继承的静态变量):

static::$lang;

从子类到父类的调用:

parent::$lang;

实例内部的正常调用(实例是当您使用 new Obj(); 时):

$this->lang;

顺便说一句: define('DEFAULT_LANG', 'en_EN'); 定义的变量是 GLOBAL 作用域,意味着可以在任何地方访问!

<?php
define('TEST', 'xxx');

class game {
    public function __construct() {
        echo TEST;
    }
}

//prints 'xxx'
new game;

关于php - OO PHP 从另一个类访问公共(public)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17576843/

相关文章:

c# - 推荐程序结构

php - 使用 php 从数据库创建和更新表

php - 两个 php 数组 - 用另一个数组的值顺序对一个数组进行排序

php - 如何使用 .htaccess 更改 URL 中的字母大小写?

php - 如何检查大 xml 文件的有效性?

c++ - 声明指向 *this* 对象的指针的优点或原因是什么?

python - 设置属于某个类的类的最有效方法是什么

ruby-on-rails - 我应该使用类方法还是实例方法,为什么?

php - Wordpress 仅在主页中缩小 html

java - 无法调用初始化为父类(super class)的 ArrayList 中派生类的方法