Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: RETURN
 
 автор: moonfox   (21.06.2009 в 19:46)   письмо автору
 
 

объясните пожалуйста смысловую нагрузку функции return ();

  Ответить  
 
 автор: winflip   (21.06.2009 в 20:09)   письмо автору
 
   для: moonfox   (21.06.2009 в 19:46)
 

Когда вы будете писать функцию, то чтобы возвратить значение используйте эту функцию

  Ответить  
 
 автор: sim5   (21.06.2009 в 20:13)   письмо автору
 
   для: moonfox   (21.06.2009 в 19:46)
 

Return - возвращать. Это возвращаемое значение, если, например, в функции retNum() имеется return 8, то обращение к этой функции, например, echo retNum() выведет в браузер 8.
Вот и весь смысл. Возвращаемыми значениями могут быть практически все типы данных.

  Ответить  
 
 автор: moonfox   (21.06.2009 в 20:19)   письмо автору
 
   для: sim5   (21.06.2009 в 20:13)
 

я вижу в функциях используют return
но не присваивают возврат не в какую из переменных, как же использовать возврат ?

  Ответить  
 
 автор: Николай2357   (21.06.2009 в 20:20)   письмо автору
 
   для: moonfox   (21.06.2009 в 19:46)
 

Еще оператор return применяется для досрочного выхода из функции или подключенного конструкциями include или requre файла.

  Ответить  
 
 автор: moonfox   (21.06.2009 в 20:23)   письмо автору
 
   для: Николай2357   (21.06.2009 в 20:20)
 

мануал я читал)

  Ответить  
 
 автор: Skinhead1   (21.06.2009 в 20:30)   письмо автору
 
   для: moonfox   (21.06.2009 в 20:23)
 

Так будет понятнее:

function summa($a,$b){
$c=$a+$b;
return $c;
}
$newsumma=summa(5,2);
echo $newsumma;//7

  Ответить  
 
 автор: Николай2357   (21.06.2009 в 20:35)   письмо автору
 
   для: moonfox   (21.06.2009 в 20:23)
 

Без return в функции можно изменить переменную, если объявить её голбальной. Вот так к примеру:
<?php
$var 
NULL;
function 
my_func($id)
{
global 
$var;
$var $id;
}
my_func('Значение');
echo 
$var;

  Ответить  
 
 автор: sim5   (21.06.2009 в 20:38)   письмо автору
 
   для: Николай2357   (21.06.2009 в 20:20)
 

>Еще оператор return применяется для досрочного выхода из функции

не только, можно им и цикл прервать.

  Ответить  
 
 автор: nikita2206   (21.06.2009 в 21:40)   письмо автору
 
   для: sim5   (21.06.2009 в 20:38)
 

ну для этого свой оператор же есть

  Ответить  
 
 автор: sim5   (21.06.2009 в 22:06)   письмо автору
 
   для: nikita2206   (21.06.2009 в 21:40)
 

много чего есть, и многое дает тот же результат.

  Ответить  
 
 автор: DEM   (21.06.2009 в 20:25)   письмо автору
 
   для: moonfox   (21.06.2009 в 19:46)
 

предположим вам надо присоединиться к БД и получить информацию о пользователе по его ID. Вся информация хранится в таблице users.
Если вам это надо исполоьзовать 1-2 раза, то можно эти 1-2 раза написать:
$query = mysql_query("SELECT * FROM `users` WHERE `id`='".$id."'");
$arr = mysql_fetch_array($query);

А если вам это надо исполльзовать раз 20-30, то лучше использовать функцию с return;

function ua($id)
{
$query = mysql_query("SELECT * FROM `users` WHERE `id`='".$id."'");
$arr = mysql_fetch_array($query);
return $arr;
}

а потом, когда вам понадобится получит массив с данными о пользователе вы напишите:
$user_array = ua($id);
и теперь $user_array - это массив содержащий всю информацию о пользователе с id равным $id в таблице users

  Ответить  
 
 автор: Николай2357   (21.06.2009 в 20:29)   письмо автору
 
   для: DEM   (21.06.2009 в 20:25)
 

То же самое и получится. При каждом вызове запрос.

  Ответить  
 
 автор: Гость   (21.06.2009 в 22:34)   письмо автору
 
   для: Николай2357   (21.06.2009 в 20:29)
 

Ну да. А потом структура запроса изменится и придется менять код в 20-ти местах.

  Ответить  
 
 автор: DEM   (22.06.2009 в 02:25)   письмо автору
 
   для: Николай2357   (21.06.2009 в 20:29)
 

Добавлю к комментарию ГОСТЯ, что эта функция могла занимать и 30 и 100 строк, вы бы 20 раз вводили одни и теже 100 строк кода?

  Ответить  
 
 автор: Николай2357   (22.06.2009 в 09:31)   письмо автору
 
   для: DEM   (22.06.2009 в 02:25)
 

Ну запрос то можно сделать один раз и обращаться к полученному массиву, а не получать его заново при каждом вызове функции. Я же не против функций, я против такой функции. Конкретной. Тогда уж использовать класс или объявить переменную статичной. Запрс то зачем каждый раз один и тот же?

  Ответить  
 
 автор: Гость   (22.06.2009 в 10:33)   письмо автору
 
   для: Николай2357   (22.06.2009 в 09:31)
 

Эта функция может быть в разных местах программы и для разных задач. И уж естественно в разных модулях - она может вызываться при авторизации пользователя, при просмотре чужого профиля и т.д.

  Ответить  
 
 автор: moonfox   (21.06.2009 в 20:35)   письмо автору
 
   для: DEM   (21.06.2009 в 20:25)
 

спасиб терь ястно
как его использовать)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования