Как передать из метода actionIndex передать переменную в конструктор AdminBase? Переменная нужна для того чтобы передать в User::checkLogged()
abstract class AdminBase{
public function __construct()
{
//$this->checkAdmin();
}
public static function checkAdmin(){
$userId = User::checkLogged();
$user = User::getUserById($userId);
if($user['role'] == 'admin')
return true;
die('Access denied');
}
}
Наследник:
class AdminController extends AdminBase
{
public $locale;
public function actionIndex($locale='')
{
$title = 'Админ Панель';
require_once (ROOT . '/views/admin/index.php');
return true;
}
}
Никак. Если переменная стала доступна только внутри метода класса, то конструктор этого класса уже отработал и ничего в него передать не выйдет. Только во вновь создаваемый экземпляр класса.
Если переменная нужна в конструкторе чтоб потом быть использованной в других методах, то заведите свойство в классе, задайте ему значение из метода, и используйте где требуется вообще не трогая конструктор:
class foo {
$bar;
function f1() { $this->bar = 1; }
function f2() { echo $this->bar; }
}
Рано или поздно узнаете про DI
и решите внедрить значение свойства из вне. Можете сразу подготовиться и добавить аксессоры для свойства:
class foo {
$bar;
function f1() { $this->setBar(1); }
function f2() { echo $this->getBar(); }
function setBar($bar) { $this->bar = $bar; }
function getBar() { return $this->bar; }
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В коде используется PHPMailer для заявок с сайта, там есть 2 адреса no-reply@mydomainru который отправляет заявки на sales@mydomain
При загрузки видео в шаблон для письма, используя плагин TinyMCE не приходит видео на почту mailru
Ситуация такая, есть класс, в котором перегружены операторы сложения и равенства, нужно написать юнит-тесты к этому классу (например, c1 + c2 == c3, где...
Задача - выполнить последовательность команд в дочерней консоли Windows и записать их вывод в родительскую консольАлгоритм программы, если...