“Не-не” отрицательный 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;
}
Вот и всё, надеюсь вам понравилось;-)