我有一个类如下:
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/