Записи с метками ‘boolean’

“Не-не” отрицательный php-хинт

Понедельник, 15 октября 2007

Сейчас занят запуском одного блога на игровую тематику, а так же пошли уже первые клиенты с курса Сергея Жуковского, что радует. Практикуюсь в быстрой и качественной настройке WordPress.
Чтобы вы не скучали напишу небольшой php-хинт, который, мне кажется, понравится изучающим этот язык. Во всяком случае мне он показался забавным и не лишённым изысканности)


Кто из вас не встречал подобный php-код?

function foo( $foo ) {
    // тварим чудеса
    if ( $foo ) // $foo не булевое значение
        return true;
    else
        return false;
}

Всё очень просто - требуется вернуть булевое значение (true/false), только проблема в том, что сама переменная $foo не обязательно булевого типа, поэтому нельзя вернуть её напрямую.

Вариант 1, приводим его к булевому значению

function foo( $foo ) {
    // фокус-покус
    return (boolean) $foo;
}

Вариант 2, приводим его к булевому значению (укороченный вариант)

function foo( $foo ) {
    // фокус-покус
    return (bool) $foo;
}

Вариант 3, двойное-отрицание!!!

function foo( $foo ) {
    // фокус-покус
    return !!$foo;
}

Первое отрицание (оператор не - !) приводит $foo к отрицательному булевому значению, т.е. false, а следующее “не” переворачивает уже к изначальному значению, но в булевом виде).

И напоследок - не сложно догадаться, что если вам нужно вернуть true, когда передаваемая переменная false, то убираем одно “не”:

function foo( $foo ) {
    // вуаля
    return !$foo;
}

Вот и всё, надеюсь вам понравилось;-)