Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/31: Рейтинг темы: голосов - 31, средняя оценка - 4.61
3 / 3 / 0
Регистрация: 03.03.2009
Сообщений: 86

Функция с return

12.02.2010, 19:29. Показов 6089. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорого времени суток!

Почему функция не возвратить число в данном случае, есть взаимоисключающие условия, но
если $flag = false то ничего не возвращается

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function Per($_chiclo)
{
...
 
$i = 0;
 
$flag = false;
 
do{
...
if($_chiclo==$i)
{
$resul = 100;
$flag = true;
break;
}
$i++;
}
while(...);
 
if(!($flag))
{
$resul=200;
}
 
return $resul;
 
}
...
 
if()
{
...
echo Per($a);// если $flag = false то ничего не возвращает функция
...
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2010, 19:29
Ответы с готовыми решениями:

Функция return в php
Подскажите, если функция возвращает несколько параметров, например координаты 3 точек треугольника (6 значений), вернуть результат можно...

Функция return в php
Добрый день! Не подскажите что делает функция return в php и в чём его смысл? Я уже читал в php manual про эту функцию, но не понял зачем...

Функция с echo работает, а с return перестает
//Так не работает: function Num($num) { if($num == 10) { return $num; } else { Num($num+1); } } echo Num(0);

7
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
12.02.2010, 19:44
чё-то я никак не врублюсь в коджесть

Может, потому, что $flag не относится к оператору do{}while{}?

Добавлено через 2 минуты
вернее так $flag=false, не относится к оператору do{}while{}
0
3 / 3 / 0
Регистрация: 03.03.2009
Сообщений: 86
12.02.2010, 20:19  [ТС]
Если флаг установлен
PHP
1
$flag=false
до цикла, а в цикле
PHP
1
2
3
4
5
if($_chiclo==$i)//это условие не выполнилось  остается flag = false;
{$resultat_Chel = $dic[($i)];
$flag = true;
 break;
}
тогда это условие должно выполнятся
PHP
1
2
3
4
if(!($flag))
{
$resul=200;
}
А в коде проверяем(по индексу) входит ли введенное число в массив чисел
0
 Аватар для SunDrop
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
13.02.2010, 02:52
Я бы изначально писал так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function Per($_chiclo)
{
...
 
$i = 0;
$resul=200;
 
do{
...
if($_chiclo==$i)
{
$resul = 100;
return $resul;
}
$i++;
}
while(...);
 
return $resul;
 
}
А что вообще должна делать функция?
Уверен, что написать ее можно по другому более правильно и красиво.
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
13.02.2010, 10:33
Может поменять
PHP
1
2
3
4
if(!($flag))
{
$resul=200;
}
на
PHP
1
2
3
4
if($flag!=false)
{
$resul=200;
}
Добавлено через 1 минуту
Соглашусь с SunDrop, вы сначала скажите для чего эта функция.
0
3 / 3 / 0
Регистрация: 03.03.2009
Сообщений: 86
14.02.2010, 16:08  [ТС]
функция ничего особого не делает, если принимаемое функцией число,есть в массиве, то она выводит
значение (текст) соответствующий этому числу

так заработала
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function Per($_chiclo)
{
...
$dic[2000] = "....";
....// и т.д.
$i = 0;
 
$flag = false;
 
do{
if($_chiclo==$i)
{$resultat_Chel = $dic[($i)];
$flag = true;
return $resultat_Chel;
}
 
$i++;
 
}
while($i<10001);
 
if(!$flag)
{
return  $resultat_Chel = -1;
}
}
Всем спасибо
0
 Аватар для SunDrop
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
14.02.2010, 16:28
PHP
1
2
3
4
5
6
7
8
function Per($_chiclo)
{
...
$dic[2000] = "....";
if (isset($dic[$_chiclo]))
    return $dic[$_chiclo];
else
    return -1;
Если функция делает то, что ты написал, то она должна выглядеть примерно так без всякий вайлов!
0
 Аватар для Flan
52 / 53 / 3
Регистрация: 12.03.2010
Сообщений: 212
07.04.2012, 23:39
Товарищи, тоже есть вопрос связанный с данной функцией: есть функция котрая выводит список из БД. Но приеё вызове этот список выводится не в том месте где надо.Я так понял дело в том что я не использовал функцию return (если этот список присвоить переменной(к примеру $list), и написать: return $list; )- то все нормально. Вот вопрос: как можно сделать правильнее что бы не делать конкатенацию
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function build_structure_site(){
    $this->sql_connect();
    $select_all_infoblocks=mysql_query("SELECT * FROM fcms_infoblocks WHERE `id_parent`=0") or die("Query failed : " . mysql_error()); ///выбрали верхние  ветки
    print "<ul>";
    while($list_all_infoblocks=mysql_fetch_assoc($select_all_infoblocks)){
            //print "<ul>";
            print "<li class=\"infoblocks\"><a href=\"index.php?type=fcms_infoblocks&id=$list_all_infoblocks[id]\">$list_all_infoblocks[name]</a></li>";
            $select_elements=mysql_query("SELECT * FROM  fcms_elements WHERE `id_infoblock`=$list_all_infoblocks[id]") or die("Query failed : " . mysql_error());
            while($list_elements=mysql_fetch_assoc($select_elements)){
                         print "<ul>";
                          print "<li class=\"page\"><a href=\"index.php?type=fcms_elements&id=$list_elements[id]\">$list_elements[name]</li>";
                          print "</ul>";
                          
                      }
            $this->create_tree($list_all_infoblocks[id]);
            
            //print "</ul>";
        }
    print "<ul>";
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.04.2012, 23:39
Помогаю со студенческими работами здесь

Функция без return
Добрый день, что может вернуть функция в которой явно значение return не указано ? bool func() { };

Функция return (delphi)
Подскажите, есть ли функция return (delphi) для окончания выполнения дочерней функции и передачи управления в родительскую. Знаю такая...

Функция и return значения
Помогите пожалуйста разобраться, а то меня что то совсем заклинило ))) Есть код, читает содержимое файла в строку. Результат в data....

Функция. Что делает return?
У меня есть функция и в ней несколько раз return условие1 return=0 условие2 return=1 Вопрос: return работает как выход из функции? То...

Функция Return. Несколько аргументов
Можно вернуть неслоко аргументов в функции return ? void progr1(int A, int B, int N ){ int X; int Y; int Z; Z=B; Y=A; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru