так сразу и не ответишь... Нужно понимать как взаимодействует браузер с сервером, нужно понимать, как писать алгоритмы (это и есть программирование), нужно знать синтаксис языка. И самое главное - это опыт. С чего ты решил этому научиться (где-то что-то попробовал и понравилось и выбрал сферу веб, как вариант..)? ты пробовал программировать вообще в принципе на чем угодно?
Я бы не был так категоричен. Смотря что писать, в определенном классе задач, без битовых операций не обойтись.
Можно пример (задачи)? любопытно... Хорошо платят хорошим программистам. А еще хорошо платят хорошим фотошоперам, тридэмаксерам и еще много кому. Эту работу нужно любить. Когда берешь проект, то живёшь им. Думаешь о нём не только за компом, но и в душе, в туалете и на прогулке. Нацелившись на бабло хорошим программистом не стать, как и любым другим хорошим спецом. Просто тебя на долго не хватит.
@ubunta2 надо помнить, чтобы потом использовать, например is_array удобно использовать перед тем как хочешь делать что-то с массивом, так как без такой проверки там может быть не массив и это вызывает ошибку при роботе с чем-то как с массивом что не умеет работать как массив
Тут есть примеры https://secure.php.net/manual/ru/language.operators.bitwise.php если конкретно какая-то побитовая операция не понятна, но можно поискать в интернете объяснение тут в итоге выполнена побитовая операция "Или", по ссылки что я дал, там есть для каждой название, в самом начале страницы есть таблица
Зачем это заучивать? Надо просто знать что есть такие функции, и при необходимости смотреть в документации про них.
нужно иметь технический склад ума. Операции над битами - 100% техническая вещь. Эту тему нужно понять, чтобы правильно относиться к информации в программировании.
@ubunta2 сначала надо научиться двоичной арифметике --- Добавлено --- a1 = 2 = 10 a2 = 8 = 1000 a3 = 45 << 5 = 10110100000 a4 = 15 << 14 = 1111000000000000000 a5 = 15 << 23 = 111100000000000000000000000 a1 | a2 | a3 | a4 | a5 = 111100001111000010110101010--- Добавлено --- 111100000111100010110101010 переведи сам из двоичной системы в десятичную.
Наверное как минимум чтобы понимать, как работает функция pack(), и почему floor((0.1+0.7)*10) вернет 7, а не 8. --- Добавлено --- Представление о системах счисления нужно для понимания base_convert и кодирования base64.
не так уж и часто нужно понимание двоичного счисления в пхп... я за все время один раз столкнулся.. да и то потому что в чужом коде разбирался а там автор извращенец условие сделал и в нем сдвиг использовался...
а еще сны снятся)) как что то ты где то там реализовываешь)) потом просыпаешься - а такое ощущение что всю ночь что то кодил)
Разбор бинарных пакетов от электронного оборудования, без битовых операций и шагу сделать нельзя. Там и CRC полиномы нужно вычислять, реализацию которых не всегда можно найти на нужном языке программирования. Разбор телеметрии - битовые операции. Прочитать дату по стандарту родственному WmBus - битовые операции. Да, такие вещи пишутся и на PHP. Доля конечно подобных проектов мала по сравнению с "сайтоклепанием", но тем не менее.
они часто используются чтобы передать нужные опции (с помощью битовой маски) в аргументы функции Есть функция https://secure.php.net/manual/ru/function.error-reporting.php она принимает аргумент $level единственным аргументом PHP: error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); Вот побитовая операция PHP: E_ERROR | E_WARNING | E_PARSE | E_NOTICE Все константы https://secure.php.net/manual/ru/errorfunc.constants.php Побитовое "или" https://ru.wikipedia.org/wiki/Битовые_операции#.D0.9F.D0.BE.D0.B1.D0.B8.D1.82.D0.BE.D0.B2.D0.BE.D0.B5_.C2.AB.D0.98.D0.9B.D0.98.C2.BB_.28OR.29 --- Добавлено --- PHP: <?php function __dec2bin($num) { echo sprintf( "%015d", decbin( $num )).PHP_EOL; } // https://secure.php.net/manual/ru/errorfunc.constants.php echo __dec2bin(1); // E_ERROR 000000000000001 echo __dec2bin(2); // E_WARNING 000000000000010 echo __dec2bin(4); // E_PARSE 000000000000100 echo __dec2bin(8); // E_NOTICE 000000000001000 echo __dec2bin(16); // E_CORE_ERROR 000000000010000 echo __dec2bin(32); // E_CORE_WARNING 000000000100000 echo __dec2bin(64); // E_COMPILE_ERROR 000000001000000 echo __dec2bin(128); // E_COMPILE_WARNING 000000010000000 echo __dec2bin(256); // E_USER_ERROR 000000100000000 echo __dec2bin(512); // E_USER_WARNING 000001000000000 echo __dec2bin(1024); // E_USER_NOTICE 000010000000000 echo __dec2bin(2048); // E_STRICT 000100000000000 echo __dec2bin(4096); // E_RECOVERABLE_ERROR 001000000000000 echo __dec2bin(8192); // E_DEPRECATED 010000000000000 echo __dec2bin(16384); // E_USER_DEPRECATED 100000000000000 echo __dec2bin(32767); // E_ALL 111111111111111 --- Добавлено --- Видишь у нас 16 опций есть, значит нам хватит число длиной в 15 символов в двоичной системе, число 000000000000000 отвечает за отключение всех опций, а 111111111111111 за включение всех, грубо говоря для включения E_ERROR смотрит на последний символ из 15 и если он 1 то опция включена, а если 0 то выключена например ты хочешь включить только E_ERROR и E_USER_DEPRECATED, а остальные выключить, делаем побитовой операцией "или": 000000000000001 | 100000000000000 = 100000000000001 там где был 0 и 1 стал 1, где 1 и 0 стал 0, где 0 и 0 стал 0