Помогите синтаксис выражения разобрать

Автор kak2z, 27 ноября 2016, 13:55:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

В общем помогите разобрать мне это выражение)
$row['id_member'] == $user_info['id'] & $row['deleted'] == 1вижу используется логическое И использующиеся в двоичных вычислениях.. но не понимаю что оно делает и зачем оно тут))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

GeorG

Логическое "И".
Здесь идет сравнение, является ли текущий пользователь пользователем из таблицы БД и сверка для него значения из поля $row['deleted'] (видимо чего то удалено, или нет).
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

kak2z

Цитата: GeorG от 27 ноября 2016, 16:14:13Логическое "И".
Здесь идет сравнение, является ли текущий пользователь пользователем из таблицы БД и сверка для него значения из поля $row['deleted'] (видимо чего то удалено, или нет).
я не могу понять почему в докумендации пхп про одинарный амперсанд ни слова))

вот еще такое выражение и тоже не очень понимаю его смысл..
$context['display_mode'] = $cur_profile['pm_prefs'] & 3;
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

kak2z

все таки есть в документации пхп про побитовые операции http://php.net/manual/ru/language.operators.bitwise.php ... я их последний раз в институте учил и не мог понять зачем они нужны.. и до сих пор не понимаю их удобство...
вот такой пример нашел
$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Побитовое И (AND) \n";
foreach ($values as $value) {
    $result = $value & $test;
    printf($format, $result, $value, '&', $test);
}

вот такой вот вывод дает
---------     ---------  -- ---------
 результат     значение   оп   тест
 ---------     ---------  -- ---------
 Побитовое И (AND)
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)
тут вроде все понятно....
5 состоит из 1 и 4 в двоичной системе...
и при побитовом сравнении мы находим или 1 или 4 потому что других значений в двоичном представлении пятерки нет..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)