Я читал соглашения PHP в ООП и сталкивался с оператором/символом |
, на который я не могу найти информацию. После тестирования проб и ошибок в среде я обнаружил, что если параметр не является типом данных, то выводится переменная справа от параметра.Что такое | делать в параметрах метода?
Например, давайте использовать класс вроде этого:
class MyClass {
const FROM_DB = 1;
const PUBLIC_ONLY = 0;
public static function getSomething($input, $db = 0, $public = 1) {
return $input;
}
}
Этот вариант использования будет возвращать 1:
echo MyClass::getSomething('test' | MyClass::FROM_DB | MyClass::PUBLIC_ONLY);
Этот вариант использования вернется 7:
echo MyClass::getSomething(6 | MyClass::FROM_DB | MyClass::PUBLIC_ONLY);
Наконец, этот прецедент вернет «тест»:
echo MyClass::getSomething('test' , MyClass::FROM_DB | MyClass::PUBLIC_ONLY);
Я не понимаю, что делает |
в этом вопросе? I found it here. Может ли кто-нибудь объяснить, что это называется и как оно используется правильно?
Спасибо заранее, see it working here.
Это 'bitwise' оператор, поиск по этому вопросу. '1, 2, 4, 8, 16' и т. Д. Устанавливают бит в двоичном формате 1, с которым вы можете сравнивать. '1 | 2' dont match, но' 1 | 3' делать как '2 + 1' make 3, что означает, что бит в integer 3 также установлен в 1. Очень полезно для флагов – Xorifelse
Смущает я, я полагаю, что он используется для математики? @Xorifelse – KDOT
Совсем нет, просто вы можете сэкономить до 32 булевых чисел в 1 32-битном целом. Этот метод экономит много памяти в базе данных и позволяет использовать awesome 1 liners вместо вложенных, если elses и очень быстро. – Xorifelse