Редактировать
Когда руководство говорит, что некоторая функция может возвращать как целое число 0, так и логическое значение false, это означает, что она может вернуть либо целое число 0
, либо логическое значение false
(не оба) в любом заданном вызове. PHP не является строго типизированным, функции могут возвращать разные типы в разных ситуациях. Например, следующая функция возвращает либо 0
, либо false
, в зависимости от того, является ли переданный параметр неотрицательным или нет:
function myfunc($arg) {
if ($arg >= 0)
return 0;
else
return false;
}
Оригинал
PHP не имеет многократного возврата. У вас есть два варианта:
Вместо этого возвращать составные значения
function myfunc() {
return array(0, true); //return array
}
class MyOutputHolder {
private $number;
private $truth;
function getNumber { return $this->number; }
function getTruth { return $this->truth; }
function __construct($number, $truth) {
$this->number = $number;
$this->truth = $truth;
}
}
function myfunc() {
return new MyOutputHolder(0, true); //return object
}
Третья возможность - пользовательский ресурс, но он должен быть реализован внутри (в расширении).
Использовать выходные параметры
function myfunc(&$outnumber, &$outtruth) {
$outnumber = 0;
$outtruth = true;
}
Конечно, вы можете вернуть только 0
или true
и использовать только один параметр.