Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2011, 22:44   #1
alex1442
 
Регистрация: 12.05.2011
Сообщений: 3
Печаль Что нетак с выводом первого элемента первого массива?

Здраствуйте форумчане!

PHP код:
<?php
$ru 
= array("Москва","Санкт-Петербург","Уфа");
$ua = array("Киев","Донецк","Львов");
$by = array("Минск","Гомель","Бобруйск");
$strani = array($ru,$ua,$by);
    
echo 
"<b>города России:</b><br>";
$indexgoroda=0;
while(
$indexgoroda<=2){
static 
$indexgoroda;
echo 
$strani[0][$indexgoroda] . "<br>";
$indexgoroda++;
}

echo 
"<b>города Украины:</b><br>";
$indexgoroda=0;
while(
$indexgoroda<=2){
static 
$indexgoroda;
echo 
$strani[1][$indexgoroda] . "<br>";
$indexgoroda++;
}

echo 
"<b>города Белоруссии:</b><br>";
$indexgoroda=0;
while(
$indexgoroda<=2){
static 
$indexgoroda;
echo 
$strani[2][$indexgoroda] . "<br>";
$indexgoroda++;
}
?>
если массив стоит на первом месте то выводится только 2 элемента

P.S не пинайте ,я только учусь
alex1442 вне форума Ответить с цитированием
Старый 12.05.2011, 23:48   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Если проверить содержимое переменной $indexgoroda, то в этом случае она равна пустой строке "", а не 0. Другое дело - разобраться, почему так происходит. Надо почитать подробнее про static
motorway вне форума Ответить с цитированием
Старый 13.05.2011, 11:46   #3
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Вот рабочая версия.
Код:
<?php
$ru = array("Москва","Санкт-Петербург","Уфа");
$ua = array("Киев","Донецк","Львов");
$by = array("Минск","Гомель","Бобруйск");
$strani = array($ru,$ua,$by);
static $indexgoroda=0;    
echo "<b>города России:</b>\n";
while($indexgoroda<=2){
echo $strani[0][$indexgoroda] . "\n";
$indexgoroda++;
}

echo "<b>города Украины:</b>\n";
$indexgoroda=0;
while($indexgoroda<=2){
echo $strani[1][$indexgoroda] . "\n";
$indexgoroda++;
}

echo "<b>города Белоруссии:</b>\n";
$indexgoroda=0;
while($indexgoroda<=2){
echo $strani[2][$indexgoroda] . "\n";
$indexgoroda++;
}
?>
Вот читайте внимательно статью http://php.net/manual/ru/language.variables.scope.php
ssdm вне форума Ответить с цитированием
Старый 13.05.2011, 20:51   #4
alex1442
 
Регистрация: 12.05.2011
Сообщений: 3
По умолчанию

Спасибо тем кто помог!
выходит что переменную следует определять статичной сразу при вводе ее в скрипт?
alex1442 вне форума Ответить с цитированием
Старый 13.05.2011, 20:58   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я лично не использовал до сегодняшнего дня слово static :D Обычно удавалось и без этого :D
motorway вне форума Ответить с цитированием
Старый 15.05.2011, 12:55   #6
graymaster
Форумчанин
 
Аватар для graymaster
 
Регистрация: 03.05.2011
Сообщений: 158
По умолчанию

static нужен в классах, определяет статическую переменную или функцию (общую для всех созданных экземпляров класса), и функциях (для выделения константного места под переменную и сохранения её значения при последщующих вызовах функции. Подробнее читайте на php.net
в глобальном скоупе это слово не нужно, собственно, все переменные, объявленные в нём, по-определению глобальны и статичны.
graymaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор первого значения NIKOLASCS SQL, базы данных 6 07.04.2010 13:01
проблема с выводом элемента из массива kirosin JavaScript, Ajax 4 15.01.2010 23:35
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41
Комп не с первого раза включается RockForr Компьютерное железо 5 18.09.2009 13:57