oop — доступ php к статическому методу на классе

Прежде всего, я новичок в ООП. Извините, если это нубский вопрос.

Я создаю многоязычный веб-сайт. Я извлекаю значения из базы данных с помощью языка. Например: 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,

Любая помощь сильно ценится.

0

Решение

Когда нет return оператор в функции — возвращаемое значение NULL, Очевидно, ваш detectLang функция работает и isset($_GET["lang"]) состояние trueв этом случае возвращаемое значение NULL,

1

Другие решения

В статических методах вы можете ссылаться только на статические атрибуты. Проще говоря, $ lang также должен быть статическим, т.е.

public static var $lang = "en";
-1

По вопросам рекламы [email protected]