Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381

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

17.04.2012, 17:15. Показов 2042. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2012, 17:15
Ответы с готовыми решениями:

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

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

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

15
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
17.04.2012, 17:21
массив состоит из парных элементов - ключ и значение , [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
это ассоциативный массив [HTTP_USER_AGENT] - это ключ, "Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62" - это значение элемента с ключом (или индексом) "[HTTP_USER_AGENT] "
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
17.04.2012, 18:56
залезь лучше в phpinfo(); больше инфы полезной там начитаешся
1
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
18.04.2012, 10:11  [ТС]
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
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
18.04.2012, 10:28
Цитата Сообщение от 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
Сообщений: 381
18.04.2012, 10:44  [ТС]
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
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,844
18.04.2012, 10:55
Цитата Сообщение от EK Посмотреть сообщение
А обязательно ли указывать $x = array()?
цитата из php.net

PHP
1
2
3
4
$arr[key] = value;
$arr[] = value;
// key может быть integer или string
// value может быть любым значением любого типа
Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путем явного присваивания значения.
1
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
18.04.2012, 18:01
если ты хочешь понять что такое массив так вот представь себе ящик, в котором лежит много других вещей и забрать данные можно по ключам которые ты указываешь если у тебя не числовой массив а ассоциативный то его можно перебрать через 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
Сообщений: 381
18.04.2012, 18:38  [ТС]
Egoist0, что такое массив, я знаю.
Меня интересует другое.
Например, вот прочитал "$_REQUEST содержит данные переменных $_GET, $_POST и $_COOKIE".
$_GET, $_POST и $_COOKIE это переменные или массивы?
Если это - массивы, то какие переменные у массива $_POST?

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

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

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

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

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

http://php.net/manual/ru/langu... lobals.php

Цитата Сообщение от EK Посмотреть сообщение
Кстаи, Вы написали: "ПОЧТИ все суперглобальные массивы наполняются интерпретатором при взаимодействии его с веб-сервером".
Как можете видеть, есть ещё другие глобальные переменные $argc, $argc и т.д. Они наполняются интерпретатором при взаимодействии с командной строкой.
0
21 / 21 / 2
Регистрация: 17.02.2011
Сообщений: 303
Записей в блоге: 1
19.04.2012, 18:18
ек почитай лучше литературу чем тут ждать ответа,
кука так же как и сесия сама по себе не создастся пока ты не дашь такое условие, кука существует без сесии и на оборот, просто сесия это то что хранится на сервере в файле, ты можешь отследить её с помощью её ИД каждому пользователю создается своя сесия и записывать эту сесию пользователю в куки после чего проверять куки с сесией и узнавать это тодже пользователь или нет, но сесия существует всего 20-24 минуты где-то так, куки используют для запоминание какой-то инфы пользователя, тоже самое и сесия, пример допустим с тестами там используется кука которая записывает твои ответы после чего выводит их, реально почитай лучше про массивы в инете
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2012, 18:18
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru