Спустя 1 минута, 52 секунды (3.02.2011 - 12:20) linker написал(а):
В двух разных переменных нет, но можно массивом
function name()
{
return array('var1' => true, 'var2' => false);
}
list($var1, $var2) = name();
function name()
{
return array(true, false);
}
list($var1, $var2) = name();
Спустя 4 минуты, 6 секунд (3.02.2011 - 12:24) LRCenter написал(а):
Ну, насчет массива понятно. Значит нельзя. Спасибо linker. Так я и думал.
Спустя 3 часа, 59 минут, 34 секунды (3.02.2011 - 16:23) glock18 написал(а):
практикуется еще помещение значения переменной в переменную, переданную по ссылке. как вариант встроенной функции - preg_match
Спустя 41 минута, 57 секунд (3.02.2011 - 17:05) sergeiss написал(а):
Почему ж нельзя-то? Вон глок18 верно написал, что по ссылке можно.
Я только чуть подробнее распишу.
Абстрактный пример, с содержанием которого, ты сам разобраться должен:
Я только чуть подробнее распишу.
Абстрактный пример, с содержанием которого, ты сам разобраться должен:
function get_value( &$val )
{
if( какое-то условие )
{
/// что-то делаем
$val=135;
}
else
{
...
$val='строка с данными';
}
if( другое условие )
return true;
return false;
}
$retval=0;
if( get_value( $retval ) )
echo 'correct<br>';
else
echo 'incorrect<br>';
echo 'функция вернула величину '.$retval;
Спустя 35 минут, 15 секунд (3.02.2011 - 17:40) linker написал(а):
Это хак, а речь о том, чтобы функция вернула результат в виде двух переменных.
Спустя 20 минут, 36 секунд (3.02.2011 - 18:01) LRCenter написал(а):
Да, да я возможно некорректно сформулировал вопрос.
Допустим есть функция. Она делает какие-то операции с входными данными и возвращает значение. При этом важно проинформировать основную программу получились ли какие-то процедуры внутри функции, допустим что по выходным данным нельзя судить об этом, можно ли вернуть true-false значение о работе переменной + значение выходных данных в отдельной переменной. Мне кажется что функции php могут возвращать только одну переменную.
Допустим есть функция. Она делает какие-то операции с входными данными и возвращает значение. При этом важно проинформировать основную программу получились ли какие-то процедуры внутри функции, допустим что по выходным данным нельзя судить об этом, можно ли вернуть true-false значение о работе переменной + значение выходных данных в отдельной переменной. Мне кажется что функции php могут возвращать только одну переменную.
Спустя 8 минут, 15 секунд (3.02.2011 - 18:09) linker написал(а):
LRCenter
Не кажется а так оно и есть
Не кажется а так оно и есть
Спустя 54 минуты, 25 секунд (3.02.2011 - 19:04) glock18 написал(а):
LRCenter
вообще везде возвращается только одно значение, это, в общем то, логично
вообще везде возвращается только одно значение, это, в общем то, логично
Спустя 2 часа, 21 секунда (3.02.2011 - 21:04) sergeiss написал(а):
LRCenter - описанный мной вариант это и делает, вообще-то. Ты проверяешь true-false на выходе и одновременно возвращаешь значение... Или ты этого не понял???
Спустя 3 часа, 28 минут (4.02.2011 - 00:32) glock18 написал(а):
Ну, может ему надо именно вернуть два значения. Тогда только хук с массивом покатит, а если то, откуда значения брать непринципиально, то можно по ссылке передавать.
Спустя 4 часа, 52 минуты, 6 секунд (4.02.2011 - 05:24) LRCenter написал(а):
sergeiss, да-да я понял, но мне было интересно, можно-ли вернуть именно двумя значениями в двух переменных. Понял что так нельзя.
Спустя 3 часа, 33 минуты, 35 секунд (4.02.2011 - 08:58) sergeiss написал(а):
LRCenter - <вырезано цензурой, много эмоций и нехороших слов>...... А кто (или что) тебе мешает вернуть ДВА, ТРИ, ПЯТЬ значений по ссылке? Или вообще массив по ссылке передать?
Функция возвращает true/false, а в параметрах по ссылке возвращаем то, что нам надо.
Функция возвращает true/false, а в параметрах по ссылке возвращаем то, что нам надо.
Спустя 22 минуты, 18 секунд (4.02.2011 - 09:20) linker написал(а):
Цитата |
Функция возвращает true/false, а в параметрах по ссылке возвращаем то, что нам надо. |
Поставь между true и false знак &&, а не ||, типа и то и то одновременно.
Спустя 48 минут, 28 секунд (4.02.2011 - 10:09) sergeiss написал(а):
Цитата (linker @ 4.02.2011 - 10:20) |
Поставь между true и false знак &&, а не ||, типа и то и то одновременно. |
Слющай, генацвале! А ты не напутал ничего??? && - это "И", а || - "ИЛИ".
А запись true/false как раз и означает "true ИЛИ false", то есть в какой-то момент времени будет только одно из них.
Спустя 2 часа, 2 минуты, 23 секунды (4.02.2011 - 12:11) LRCenter написал(а):
Все понтяно. sergeiss
Прием хороший, годный. Буду использовать, ниче другого не остается.
Прием хороший, годный. Буду использовать, ниче другого не остается.
Спустя 1 час, 8 минут, 55 секунд (4.02.2011 - 13:20) glock18 написал(а):
Имхо оба приема годные Я больше люблю возвращать массивом данные, а пыховцы больше любят через ссылку передавать значение из функции - для чего я, по-твоему, пример функции такой привел?
Спустя 1 час, 47 минут, 50 секунд (4.02.2011 - 15:08) linker написал(а):
Представляете себе вызов функции, когда нужно вернуть с десяток значений?
_____________
Меньше кода - меньше багов ©