[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вернуть TRUE и значение разом.
LRCenter
Возможно ли чтобы функция возвращала TRUE-FALSE и еще какое-нибудь значение разом, в 2-х разных переменных в смысле?



Спустя 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 могут возвращать только одну переменную.

Спустя 8 минут, 15 секунд (3.02.2011 - 18:09) linker написал(а):
LRCenter
Не кажется а так оно и есть wink.gif

Спустя 54 минуты, 25 секунд (3.02.2011 - 19:04) glock18 написал(а):
LRCenter
вообще везде возвращается только одно значение, это, в общем то, логично smile.gif

Спустя 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, а в параметрах по ссылке возвращаем то, что нам надо.

Спустя 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 знак &&, а не ||, типа и то и то одновременно.

Слющай, генацвале! А ты не напутал ничего??? smile.gif && - это "И", а || - "ИЛИ".
А запись true/false как раз и означает "true ИЛИ false", то есть в какой-то момент времени будет только одно из них.

Спустя 2 часа, 2 минуты, 23 секунды (4.02.2011 - 12:11) LRCenter написал(а):
Все понтяно. sergeiss
Прием хороший, годный. Буду использовать, ниче другого не остается. smile.gif

Спустя 1 час, 8 минут, 55 секунд (4.02.2011 - 13:20) glock18 написал(а):
Имхо оба приема годные cool.gif Я больше люблю возвращать массивом данные, а пыховцы больше любят через ссылку передавать значение из функции - для чего я, по-твоему, пример функции такой привел? wink.gif

Спустя 1 час, 47 минут, 50 секунд (4.02.2011 - 15:08) linker написал(а):
Представляете себе вызов функции, когда нужно вернуть с десяток значений? smile.gif


_____________
Меньше кода - меньше багов ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.