Прежде всего, я новичок в ООП. Извините, если это нубский вопрос.
Я создаю многоязычный веб-сайт. Я извлекаю значения из базы данных с помощью языка. Например: index.php?lang=en
если значение языка установлено с параметром $ _GET, mysql выводит только en значения в базу данных. Проблема с моим LanguageController.
// 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;
}
}
}
Я хочу передать параметр $ lang по умолчанию, например, ‘en’.
Если клиент меняет язык на «fr», я должен начать сеанс. И mysql приносит значения языка «fr».
Как я могу передать свой $lang
параметр на моем detectLang()
метод.
Я старался var_dump(LanguageController::detectLang())
Приближается NULL
,
Любая помощь сильно ценится.
Когда нет return
оператор в функции — возвращаемое значение NULL
, Очевидно, ваш detectLang
функция работает и isset($_GET["lang"])
состояние true
в этом случае возвращаемое значение NULL
,
В статических методах вы можете ссылаться только на статические атрибуты. Проще говоря, $ lang также должен быть статическим, т.е.
public static var $lang = "en";