Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 376
1

Как устроены массивы

17.04.2012, 17:15. Просмотров 1398. Ответов 15
Метки нет (Все метки)

Здрасте!
Прочитал на сайте про $_SERVER "... в него PHP-интерпретатор помещает переменные, полученные от сервера".
Когда я написал print_r($_SERVER), то увидел инфу типа Array ( [HTTP_USER_AGENT] => Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62 и т.п.

А какой именно элемент этой строки является переменной, полученной от сервера: [HTTP_USER_AGENT] или => Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62[/I] ?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2012, 17:15
Ответы с готовыми решениями:

Как устроены чаты?
Всем привет. Я раньше никогда не висел на чатах, а тут случайно попал, мне стало интересно как они...

Как устроены события?
Привет! Можете, пожалуйста, рассказать про то, как устроены события, как происходит сам процесс...

Как устроены игры?
Есть ли книга или руководство на русском, в котором объясняется как устроены компьютерные игры? Я...

Как устроены проекты VS
Подскажите плиз, как организована прога в VS? И определения что такое solution, project и тд? Как...

Как устроены оси в Unity?
но при этом Так же по оси х возрастает впрво, проверил( персонаж движется вправо - х...

15
crautcher
2023 / 1996 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
17.04.2012, 17:21 2
массив состоит из парных элементов - ключ и значение , [HTTP_USER_AGENT] - ключ , Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62 - значение .
1
shafl
258 / 147 / 37
Регистрация: 24.01.2011
Сообщений: 427
17.04.2012, 17:24 3
это ассоциативный массив [HTTP_USER_AGENT] - это ключ, "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62" - это значение элемента с ключом (или индексом) "[HTTP_USER_AGENT] "
1
Egoist0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.04.2012, 18:56 4
залезь лучше в phpinfo(); больше инфы полезной там начитаешся
1
17.04.2012, 18:56
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 376
18.04.2012, 10:11  [ТС] 5
crautcher, это получается, что я мог бы у себя в блокнотике написать
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Да?

Значит ли это, что сервер создает переменные точно так же, как и пользователь?
Т.е. когда сервер видит команду print_r($_SERVER), то он пишет себе в блокнот:
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62[/I]
$y[CHARSET] = windows-1251
$z[CHARSET_DETERMINED_BY] = UserAgent

а потом эту свою писанину пересылаает клиенту, а тот - выводит на экран пользователю?

и т.д.

Прошу прощения за, наверное, глупый вопрос.
Так уж исторически сложилось, что, чем подробнее объяснение, тем у меня больше шансов понять его.

Добавлено через 1 минуту
Цитата Сообщение от Egoist0 Посмотреть сообщение
залезь лучше в phpinfo(); больше инфы полезной там начитаешся
Мне не нужна та инфа. Я просто пытаюсь понять, как это все работает.
0
crautcher
2023 / 1996 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
18.04.2012, 10:28 6
Цитата Сообщение от EK Посмотреть сообщение
crautcher, это получается, что я мог бы у себя в блокнотике написать
$x[HTTP_USER_AGENT] = Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Да?
ну не совсем так ..
PHP
1
2
3
4
<?
$x = array();
#объявили что $х у нас массив
$x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62';
Цитата Сообщение от EK Посмотреть сообщение
Т.е. когда сервер видит команду print_r($_SERVER), то он пишет себе в блокнот:
в какой блокнот ?) Этож сервер ,на нем хранятся переменные , когда ты пишешь вышенаписанный код ты говоришь серверу чтоб он создал массив , в данном случае он сам его создаёт.
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 376
18.04.2012, 10:44  [ТС] 7
PHP
1
2
3
$x = array();
#объявили что $х у нас массив
$x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62';
А обязательно ли указывать $x = array()? Нельзя ли сразу написать $x['HTTP_USER_AGENT'] = 'Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62'; ?
Ведь квадратные скобки уже говорят от том, что $x - массив.
0
crautcher
2023 / 1996 / 463
Регистрация: 27.05.2011
Сообщений: 6,838
18.04.2012, 10:55 8
Цитата Сообщение от EK Посмотреть сообщение
А обязательно ли указывать $x = array()?
цитата из php.net

PHP
1
2
3
4
$arr[key] = value;
$arr[] = value;
// key может быть integer или string
// value может быть любым значением любого типа
Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путем явного присваивания значения.
1
Egoist0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
18.04.2012, 18:01 9
если ты хочешь понять что такое массив так вот представь себе ящик, в котором лежит много других вещей и забрать данные можно по ключам которые ты указываешь если у тебя не числовой массив а ассоциативный то его можно перебрать через foreach а иначе через while или for
так вот представь что масив это та же переменая которая имметь просто дополнительный параметр []
допустим вот смотри есть две переменые и один массив
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$phone='Apple';
$auto='BMW';
//вот так можно создавать масивы
$array=array('BMW','apple');
$array['auto']='BMW';
$array['phone']='apple';
//выводим через переменые
print $phone;
print $auto;
//выводим через массив
print $array[0];//BMW
print $array[1];//apple
print $array['auto'];//bmw
print $array['phone'];//apple
//сейчас у нас 4 елемента в массиве, почему 4 потомучто я создал массив через array(); и так же создал их последовательно
так же в самом массиве можно делать ключи ассоциативные
$array=array('auto'=>'BMW','phone'=>'apple');
понятно? или какой именно момент не ясен?
0
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 376
18.04.2012, 18:38  [ТС] 10
Egoist0, что такое массив, я знаю.
Меня интересует другое.
Например, вот прочитал "$_REQUEST содержит данные переменных $_GET, $_POST и $_COOKIE".
$_GET, $_POST и $_COOKIE это переменные или массивы?
Если это - массивы, то какие переменные у массива $_POST?

И, кстати, какие массивы называется суперглобальными?
0
Dartk
48 / 50 / 4
Регистрация: 15.03.2009
Сообщений: 146
18.04.2012, 20:52 11
Цитата Сообщение от EK Посмотреть сообщение
$_GET, $_POST и $_COOKIE это переменные или массивы?
Это массивы.

Цитата Сообщение от EK Посмотреть сообщение
Если это - массивы, то какие переменные у массива $_POST?
Массив — это структура, которая может содержать любые данные.

Цитата Сообщение от EK Посмотреть сообщение
И, кстати, какие массивы называется суперглобальными?
Те которые вы указали выше. Почти все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером.
1
Egoist0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
18.04.2012, 21:02 12
гет пост и куки это масивы, гет и пост это то что ты получаешь от формы отправленой, кука это то что ты создаешь пользывателю, суперглобальный масив это $_SERVER который можно юзать где угодно и как угодно не лезь пока в куки если не знаешь что такое гет и пост забудь сейчас про куки и сесии
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 376
19.04.2012, 14:05  [ТС] 13
Dartk, я немного другое хотел спросить.
Почему эти массивы называют суперглобальными?
Суперглобальные массивы это те, которые формирует не пользователь, а сервер?
Кстаи, Вы написали: "ПОЧТИ все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером".
А какие не наполняются?

Egoist0, про куки и сессии я знаю, но в самых общих чертах
Когда мы гуляем по сайту, то комп отслеживает наше перемещение, вычисляет наш IP-адрес, операционку и все это пишет в куки.
А на стороне сервака пишется сессия с точно такой же инфой.
А когда мы уходим с сайта - сессия закрывается.
Правильно?

Кстати, а можно создать куки с помощью функции fopen('cookie.txt', 'a+')?
0
Dimedrol
2374 / 937 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
19.04.2012, 14:16 14
Цитата Сообщение от EK Посмотреть сообщение
А какие не наполняются?
Все суперглобальные наполняются интерпретатором.
Цитата Сообщение от EK Посмотреть сообщение
Кстати, а можно создать куки с помощью функции fopen('cookie.txt', 'a+')?
Куки - нет. Вы же не можете редактировать файлы на компе посетителя. А вот сой алгоритм сессии вы можете придумать.
0
Dartk
48 / 50 / 4
Регистрация: 15.03.2009
Сообщений: 146
19.04.2012, 15:20 15
Вообще это не массивы, а переменные, их так называют лишь потому, что все суперглобальные переменные являются массивами.

http://php.net/manual/ru/language.variables.superglobals.php

Цитата Сообщение от EK Посмотреть сообщение
Кстаи, Вы написали: "ПОЧТИ все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером".
Как можете видеть, есть ещё другие глобальные переменные $argc, $argc и т.д. Они наполняются интерпретатором при взаимодействии с командной строкой.
0
Egoist0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
19.04.2012, 18:18 16
ек почитай лучше литературу чем тут ждать ответа,
кука так же как и сесия сама по себе не создастся пока ты не дашь такое условие, кука существует без сесии и на оборот, просто сесия это то что хранится на сервере в файле, ты можешь отследить её с помощью её ИД каждому пользователю создается своя сесия и записывать эту сесию пользователю в куки после чего проверять куки с сесией и узнавать это тодже пользователь или нет, но сесия существует всего 20-24 минуты где-то так, куки используют для запоминание какой-то инфы пользователя, тоже самое и сесия, пример допустим с тестами там используется кука которая записывает твои ответы после чего выводит их, реально почитай лучше про массивы в инете
0
19.04.2012, 18:18
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2012, 18:18

Как устроены словари dict?
Добрый день. Учу питон и столкнулся с такой особенностью: d={'a': '123', 'b': 'qwe', 'c':...

Как у вас двумерные вектора устроены?
Вектор представляет собой последовательность объектов с динамическим размером, которая обеспечивает...

Как устроены аудиопроигрыватели,видеопроигрыватели?(т.е программы)
Видел код фотки,куча цифр со странными числами в 16-тиричной системе. Как это всё устроено?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru