1 <?php
2 class ACL
3 {
4 var $perms = array(); //Array : Stores the permissions for the user
5 var $userID = 0; //Integer : Stores the ID of the current user
6 var $userRoles = array(); //Array : Stores the roles of the current user
7
8 function __constructor($userID = '')
9 {
10 if ($userID != '')
11 {
12 $this->userID = floatval($userID);
13 } else {
14 $this->userID = floatval($_SESSION['userID']);
15 }
16 $this->userRoles = $this->getUserRoles('ids');
17 $this->buildACL();
18 }
Это часть учебника, который я изучаю, создавая систему входа в систему. Я не знаю, занимался ли я этим слишком долго, и мой мозг был переполнен, но я запутался по поводу логического выражения, используемого в качестве аргумента в функции __constructor. См. Строку 8.
Это объяснение, данное в руководстве:
Функция __constructor () используется для инициализации объекта, когда мы
хочу загрузить ACL. Он вызывается автоматически, когда мы вызываем новый
(ACL) ;. Затем передается единственный необязательный аргумент пользователя
загрузить ACL для. Внутри конструктора мы проверяем, есть ли идентификатор пользователя
был передан. Если ID не был передан, мы предполагаем, что мы загрузим
ACL для текущего авторизованного пользователя; поэтому мы читаем на сессии
переменная для этого. В качестве альтернативы, если мы передадим идентификатор пользователя, это позволит
нам читать и редактировать ACL для пользователя, который не вошел в систему
(полезно для вашей страницы администратора).
Вопрос № 1 ... поэтому этот метод запускается, как только вы создаете новый класс, и принимает логическое значение в качестве аргумента. Я не понимаю, зачем вам нужно указывать тот факт, что userID = ''. Не могли бы вы просто упростить и написать: function __constructor ($ userID) {if ($ userID! = '') ........ и т. Д. так далее. ?? Или они имеют в виду одно и то же?
Идея указать логическое значение никогда не имела для меня смысла, особенно когда вы не используете его в операторе IF для проверки его правильности.
РЕДАКТИРОВАТЬ: я сделал очень странный промах. Извините, не обращая внимания на всю логическую вещь, это даже не логическое утверждение. Моя ошибка ... 12 часов обучения программированию берут свое.
Вопрос 2: переменная $ userID в строке 5 совпадает с переменной $ userID в строке 8? Я думаю нет, но я не уверен. Я уверен, что $ userID в строке 5 совпадает с $ this-> userID в строке 12 и строке 15, но как насчет строки 8 и 10? Я сбит с толку. Если переменная $ userID в строке 8 НЕ пуста, то вы присваиваете $ userID, найденный в строке 5, с плавающей точкой $ userID в строке 8 ??
У меня такое ощущение, что это 2 разных $ userID. Почему этот парень не может использовать другое слово, если это так? LOL
ПРИМЕЧАНИЕ: я изучаю PHP меньше недели, поэтому они больше всего покажутся базовыми концептуальными вопросами. Синтаксис на самом деле не проблема для меня, это концепции.
Любая помощь приветствуется. Приветствия.