首先,我是OOP的新手。对不起,如果这是一个菜鸟问题。
我正在建立一个多语言网站。我正在使用语言 iso 获取数据库值。例如:index.php?lang=en
如果语言值设置为 $_GET 参数,mysql 只会在数据库中带来 en 值。问题出在我的语言控制器上。
// LanguageController Class
class LanguageController {
public $lang = "en";
public function __construct() {
return true;
}
public static function detectLang() {
$lang = 'en';
ob_start();
session_start();
if(isset($_GET["lang"])) {
$lang= $_GET["lang"];
$_SESSION["lang"] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
else {
$lang = 'en';
$_SESSION["lang"] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
return true;
}
}
}
我想为例如"en"传递默认$lang参数。如果客户端将语言更改为"fr",我必须启动会话。mysql 带来了"fr"语言值。如何在detectLang()
方法上传递$lang
参数。
我试过var_dump(LanguageController::detectLang())
它即将NULL
任何帮助都非常感谢。
当函数中没有 return
语句时 - 返回值为 NULL
。显然,您的detectLang
函数有效并且isset($_GET["lang"])
条件为true
,在这种情况下,返回值为NULL
。
在静态方法中,只能引用静态属性。简单来说,$lang也需要是静态的,即
public static var $lang = "en";