PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
Aviator Отправлено: 02 Декабря, 2011 - 21:10:23 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Цитата:
Не работает потому что переменая $Text обьявлена в глобальном пространстве и в функции её просто нет. А что бы такого небыло нужно использовать суперглобальные масивы на прямую а не через левую переменую

Уже разобрался. Спасибо.
Aviator Отправлено: 02 Декабря, 2011 - 20:16:36 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Интересно. Возьму на заметку.
Aviator Отправлено: 02 Декабря, 2011 - 19:49:49 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Цитата:
Aviator проверки сами пилите, но я бы решил поставленую задачу так:

Да вариант хороший, но про array_search, я не знал. Буду иметь в виду.
Aviator Отправлено: 02 Декабря, 2011 - 19:32:56 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Цитата:
а что в противном случае? $Text не установлена, то есть нул. по идее почти всегда должен быть else, в вашем случае он должен быть, т.к. вы инициализируете переменную с которой потом работаете, а работать с не существующей переменной не надо

Вы правы, такой вариант приемлен?
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET["text1"]))
  2.         $Text = $_GET["text"];
  3. else {
  4.         echo "<h1>Ошибка! Данные не переданы!</h1>";
  5.         exit;
  6. }
Aviator Отправлено: 02 Декабря, 2011 - 18:04:49 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Цитата:
кто вас учил числовые индексы масивов в кавычки брать?

Это ассоциативный массив. Была такая идея.
Цитата:
// что такое $Text[0] вобще непонятно

Забыл скопировать строчку:
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET["text"])) $Text = $_GET["text"];

Цитата:
во-вторых у функции другая облать видимости и $finally за функцией и в функции разные.

Ваш вариант, тоже не работает:
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET["text"])) $Text = $_GET["text"];
  2.  
  3. $unit[1]="Один";
  4. $unit[2]="Два";
  5. $unit[3]="Три";
  6. $unit[4]="Четыре";
  7. $unit[5]="Пять";
  8. $unit[6]="Шесть";
  9. $unit[7]="Семь";
  10. $unit[8]="Восемь";
  11. $unit[9]="Девять";
  12.  
  13.  
  14. function unit($u)
  15. {
  16.    $finally = "";
  17.    for($j = 1;$j <= count($unit);$j++)
  18.         if($j == $Text[0])
  19.                 $finally = $finally . $u[$j]." ";
  20.    return $finally;
  21. }
  22. echo "<center><h1>".$Text." : ".unit($unit)."</h1></center>";

Выводит "5:"
(Добавление)
Цитата:
global поможет

Спасибо, помогло.
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET["text"])) $Text = $_GET["text"];
  2.  
  3. $unit[1]="Один";
  4. $unit[2]="Два";
  5. $unit[3]="Три";
  6. $unit[4]="Четыре";
  7. $unit[5]="Пять";
  8. $unit[6]="Шесть";
  9. $unit[7]="Семь";
  10. $unit[8]="Восемь";
  11. $unit[9]="Девять";
  12.  
  13.  
  14. function unit()
  15. {
  16.         global $Text;
  17.         global $unit;
  18.         $finally = "";
  19.            for($j = 1;$j <= count($unit);$j++)
  20.                         if($j == $Text[0])
  21.                                         $finally = $finally . $unit[$j]." ";
  22.    return $finally;
  23. }
  24. echo "<center><h1>".$Text." : ".unit($unit)."</h1></center>";
Aviator Отправлено: 02 Декабря, 2011 - 17:46:33 • Тема: Не работает код в функциях • Форум: Вопросы новичков

Ответов: 17
Просмотров: 459
Добрый день, не могу понять что не так.
Есть программа, которая должна переводить цифры в прописной вид: 5 - пять.
Вариант для единиц:
PHP:
скопировать код в буфер обмена
  1.  
  2. $unit["1"]="Один";
  3. $unit["2"]="Два";
  4. $unit["3"]="Три";
  5. $unit["4"]="Четыре";
  6. $unit["5"]="Пять";
  7. $unit["6"]="Шесть";
  8. $unit["7"]="Семь";
  9. $unit["8"]="Восемь";
  10. $unit["9"]="Девять";
  11.  
  12. $finally == "";
  13.  
  14. for($j = 1;$j <= count($unit);$j++)
  15.                         if($j == $Text[0])
  16.                                 $finally = $finally . $unit[$j]." ";
  17. echo "<center><h1>".$Text." : ".$finally."</h1></center>";

Этот вариант работает.
А этот нет:
PHP:
скопировать код в буфер обмена
  1. $unit["1"]="Один";
  2. $unit["2"]="Два";
  3. $unit["3"]="Три";
  4. $unit["4"]="Четыре";
  5. $unit["5"]="Пять";
  6. $unit["6"]="Шесть";
  7. $unit["7"]="Семь";
  8. $unit["8"]="Восемь";
  9. $unit["9"]="Девять";
  10.  
  11. $finally == "";
  12. function unit()
  13. {
  14.    for($j = 1;$j <= count($unit);$j++)
  15.         if($j == $Text[0])
  16.                 $finally = $finally . $unit[$j]." ";
  17. }
  18. unit();
  19. echo "<center><h1>".$Text." : ".$finally."</h1></center>";

Что не так?
Почему в функции не хочет работать?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB