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

Форум PHP

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

 

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

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

тема: function return обьяснить как работает
 
 автор: kvins   (18.02.2011 в 13:17)   письмо автору
 
 

вот смотрел урок , да и создавал функции. ну знаю что функция return возвращает параметры а для чего?

Если не поставить return то переменные после функции исчезнут???

  Ответить  
 
 автор: sim5   (18.02.2011 в 14:03)   письмо автору
 
   для: kvins   (18.02.2011 в 13:17)
 

Исчезнут, так как они не являются глобальными, потому они и возвращаются для дальнейшего использования, только вернее не переменные возвращаются, а результат работы функции. Хотя можно и не возвращать, и не потерять результат работы ее. Для этого внешнюю, по отношению к функции, переменную можно, например, объявить глобальной и присвоить результат работы функции ей.

  Ответить  
 
 автор: Лена   (18.02.2011 в 14:19)   письмо автору
 
   для: kvins   (18.02.2011 в 13:17)
 

Внутри функции устанавливаются переменные с локальной областью видимости - за пределами функции эти переменные не существуют.
Функция - это процесс, после исполнения которого должен быть результат. Этот результат и возвращает return.


<?php
//Функция возвращает строку:
function asd(){
$a 2*2;
return 
$a;
}

$result asd();
print 
$result;

//Функция может возвращать массив:
function asd1(){
$b 2*2;
$d 2*3;
$a = array($b,$d);
return 
$a;
}

$result1 asd1();
print_r($result1);

//функция ничего не возвращает, 
//но имеет глобальную переменную, в которую все и пишется
function asd2($b,$d){
global 
$a;
$a $b+$d;
}

$b 4;
$d 9;

asd2($b,$d);
print 
$a;

?>

  Ответить  
 
 автор: kvins   (18.02.2011 в 16:13)   письмо автору
 
   для: Лена   (18.02.2011 в 14:19)
 

спс в принципе понятно . хотя я видел что переменные выводят из функции а только потом ее туда вставляют
и так же с get & post запросом , если они пришли с другого куска и присвоить

например так $qq = $_get('qq') до функции а только потом ее туда вставить то тогда return не нужна???
или она уже чета измененое выводит??
$b = 2*2;
$d = 2*3;

function asd1(){

$a = array($b,$d);
return $a;
}


вроде в 1 посте она и имелла это ввиду тока без глобального значения

хотя в принципе все понял да и несложно вписать))))))))))

  Ответить  
 
 автор: psychomc   (18.02.2011 в 16:19)   письмо автору
 
   для: kvins   (18.02.2011 в 16:13)
 

можете сразу вот так написать

<?php
function asd1(){
    
// .....
    
return array($b,$d);
}


и еще передача параметра по ссылке

<?php
function inc(&$param) {
   
$param ++;
}

$x 5;
inc($x);
echo 
$x;

  Ответить  
 
 автор: kvins   (18.02.2011 в 16:38)   письмо автору
 
   для: psychomc   (18.02.2011 в 16:19)
 

вроде вопрос легкий а скока решений))) выбирай что хочешь))

кароче у каждого свой стиль я так понял))

уверен еще и нетак можно сделать

  Ответить  
 
 автор: psychomc   (18.02.2011 в 16:53)   письмо автору
 
   для: kvins   (18.02.2011 в 16:38)
 

нет, дело не в стилях. зависит от ситуации. иногда в пользу читабельности, иногда в пользу скорости тот или иной вариант

  Ответить  
 
 автор: neadekvat   (18.02.2011 в 17:07)   письмо автору
 
   для: psychomc   (18.02.2011 в 16:53)
 

Преждевременная оптимизация... ^__^
Хотя согласен - например, чтение больших файлов построчно, а не чтение всего его в память ни разу не преждевременная оптимизация.

  Ответить  
 
 автор: psychomc   (18.02.2011 в 17:18)   письмо автору
 
   для: neadekvat   (18.02.2011 в 17:07)
 

да наверное...да и кстати люблю сокращать код и избегаю присвоений там где можно обойтись без них.

  Ответить  
 
 автор: neadekvat   (18.02.2011 в 17:25)   письмо автору
 
   для: psychomc   (18.02.2011 в 17:18)
 

Я тоже. Малое количество кода всегда лучше, чем большое :)
Вообще, выработан свой набор правил, который не совпадает ни с одним существующим - и порой чужой код открываешь - хоть стой, хоть падай. Будто чьи-то ношенные, нестиранные трусы одел.

  Ответить  
 
 автор: psychomc   (18.02.2011 в 17:31)   письмо автору
 
   для: neadekvat   (18.02.2011 в 17:25)
 

то же самое :)
я себе кстати даже собрал chm по своему стандарту кодирования. получилась сборная солянка из всяких рекомендаций, которые приглянулись

  Ответить  
 
 автор: neadekvat   (18.02.2011 в 17:42)   письмо автору
 
   для: psychomc   (18.02.2011 в 17:31)
 

А я нагло стырил у Коханы, перевел и изменил под себя.
Когда забываю, как сам же решил писать - подглядываю на http://test1.ru/cs :)

  Ответить  
 
 автор: Косорылый   (19.02.2011 в 15:43)   письмо автору
 
   для: psychomc   (18.02.2011 в 16:19)
 


<?
function inc($p) {
   return 
$p ++;
}
$x 5
echo 
array_map('inc'$x);

  Ответить  
 
 автор: psychomc   (19.02.2011 в 17:43)   письмо автору
 
   для: Косорылый   (19.02.2011 в 15:43)
 

есть и такое, но я всего лишь хотел показать автору как работает передача параметра по ссылке :)

  Ответить  
 
 автор: Trianon   (19.02.2011 в 17:59)   письмо автору
 
   для: psychomc   (19.02.2011 в 17:43)
 

вот как раз ему после видеоурока передача параметра по ссылке - самое то.

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

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