Я знаю, что мы используем функцию GET для получения переменных из url в php, когда мы используем метод GET для передачи данных по страницам или на одной странице.
Однако
$obj = new BlahBlahName($_GET);
что же это сделать?
Я знаю, что мы используем функцию GET для получения переменных из url в php, когда мы используем метод GET для передачи данных по страницам или на одной странице.
Однако
$obj = new BlahBlahName($_GET);
что же это сделать?
Чтобы понять это, вы должны понимать, что такое переменная «$ _GET». Чтобы получить полную информацию об этом, вы можете прочитать официальную документацию PHP.net. Вот ссылка: http://php.net/manual/en/reserved.variables.get.php
Вот приведенная информация. В основном, когда страница загружается и имеет некоторые переменные, определенные в ее адресе, PHP генерирует переменную массива с именем $ _GET. Таким образом, эта переменная представляет собой не что иное, как массив. Например, если страница со следующим адресом будет загружена: www.example.com?var1 = знач1 & var2 = val2, массив $ _GET будет выглядеть примерно так:
{
'var1' => 'val1',
'var2' => 'val2'
}
Так, так как $ _GET массив, вы можете применять различные функции к нему. Вы можете проверить, была ли эта переменная/массив задана уже isset ($ _ GET), подсчитать количество элементов в ней ($ _ GET) и т. Д. Ни одна из этих функций фактически не должна искать конкретные значения массива, такие как $ _GET ["var1"], но посмотрите на массив в целом.
В вашем примере $ _GET передается не только какой-либо функции, но и классу, когда экземпляр его инициализируется. Всякий раз, когда объект класса создается, определенная функция называется named constructor. Итак, этот массив $ _GET просто передается в эту конструкторскую функцию. Подробнее о конструкторах читайте здесь: http://php.net/manual/en/language.oop5.decon.php.
Надеюсь, это поможет.
Это очень помогло! благодаря – 2010-10-25 18:11:08
Он просто передает массив $_GET
до BlahBlahName
constructor. Конструктор может вытащить все необходимое из массива при создании объекта BlahBlahName
.
$_GET
не является функцией; скорее, это associative array of variables, указанный в запросе.
По какой-то причине w3schools calls it a function; это кажется вводящим в заблуждение.
*
Посмотрите на фактический код для функции BlahBlahName
__construct()
(если вы можете), чтобы увидеть именно то, что он делает с переменной, если вам интересно.
* w3schools с тех пор обновил описание $_GET
Еще одна причина не использовать w3schools, но руководство по PHP или [достойную книгу для изучения PHP] (http://stackoverflow.com/questions/90924/what-is-the-best-php-programming-book) – Gordon
спасибо за великий ответ. – 2010-10-25 18:12:42
Это создает новый объект BlahBlahName, используя массив $ _GET. Конструктор, вероятно, анализирует значения в массиве и присваивает их свойствам BlahBlahName.
Это вызывает конструктор для BlahBlahName
с пропуском $_GET
и присваивает его $obj
.
Было бы передать массив $ _GET в конструктор классаBlahBlahName. $ _GET - это массив переменных, передаваемых в URL-адресе.
новый BlahBlahName возвращает новый экземпляр объекта/класса переменной $ OBJ. Из этого вы сможете вызывать методы из класса, например. $ obj-> способ(). Класс, о котором он будет использовать, будет BlahBlahName.
В вашем коде вы передаете массив $ _GET в конструктор классов, что по сути бессмысленно, потому что $ _GET является суперглобальным и должно быть доступно во всем коде.
Возможно, все будет хорошо, чтобы развязать код. –
Скорее всего, объект фильтра, обертывающий входные массивы PHP. Я использую что-то подобное:
$_REQUEST = new input($_REQUEST);
Это в основном захватывает бывший $_REQUEST
массив и делает это свойство объекта. Object-oriented superglobals
['$ _GET'] (http://de.php.net/manual/en/reserved.variables.get.php) не является функцией, ни методом, а [зарезервированной переменной] (http://de.php.net/manual/en/reserved.variables.php) проведение массива – Gordon
@ Gordon - Кому-то нужно отправить заметку в w3schools: http://w3schools.com/PHP/php_get.asp –
@Rob Hruska: w3schools не совсем не так. Суперклассы действительно не заселены с самого начала, они заполняются сначала при доступе. Поэтому PHP-внутренне это «функция». Но фига, эта двусмысленность не имеет места в документации для конечного пользователя. – mario