1

Тема: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Може хтось в курсі як пояснити роль амперсанда, який стоїть перед цифрою? Наприклад, якщо у наступному виразі вписувати в значення $var парні значення, то будемо отримувати нуль, якщо непарні - одиницю:
[code=php]$var = 3;
var_dump($var & 1); [/code]

2 Востаннє редагувалося Chemist-i (05.03.2014 12:58:50)

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Бітова операція? Логічне "і".
Лінк

Подякували: ktretyak, koala2

3

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Chemist-i написав:

..Логічне "і"...

Ні, я пробував - вставляти and то видає інші результати

4

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Логічний вираз не є побітовим і навпаки! А скорочений логічний оператор не є звичайним логічним.
& && and - різні речі

5

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Ні, я пробував - вставляти and то видає інші результати

Це різні речі, Chemist-i сказав все вірно ;)

Логічний вираз не є побітовим і навпаки! А скорочений логічний оператор не є звичайним логічним.
& && and - різні речі

Частково ви праві. Наскільки мені відомо && і and відрізняються тільки пріорітетом операції ;) Чи ви знаєте ще якісь відмінності?

6

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

funivan написав:

Частково ви праві. Наскільки мені відомо && і and відрізняються тільки пріорітетом операції ;) Чи ви знаєте ще якісь відмінності?

Не стаднікуйте :), а читайте талмуд.
побітові операції не є логічними

7

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Хто такий Стаднік Роман?

8

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

20xDADA11C7 я знаю що побітові операції не є логічними.
Ви хочете сказати що операція && є побітовою а and - логічною?
Наскільки я бачу з мануала операція && і and є логічною. Вони є в таблиці приведені по вказануому вами посиланню http://ua1.php.net/manual/en/language.o … ogical.php
Якщо я не правий виправте мене і дайте відповіді на запитання якщо можна:
чим ще відрізняється оператор && i and крім пріорітету ?

2Invader стаднік роман це користувач який вирішує свої проблеми з кодом тупо копіпастом говорих рішень форумчан ;)

9

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

чим ще відрізняється оператор && i and крім пріорітету ?

Темними чарами :)

Напис replace є:

$i = false;
$i and (printf("replace"))

Напису replace нема:

$i = false;
$i && (printf("replace"))

Тому я казав про скорочений логічний оператор (в цому випадку &&). Тобто друга частина виразу не виконується, коли і так зрозуміле значення виразу. Ото такі темні чари в нашому хуторі сіподібних мов.

10

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

У двох вказаних вами випадках напису немає. ;) Перевірте свій код ;)

З сторінки PHP

// foo() will never get called as those operators are short-circuit
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());


foo() ніколи не буде викликатись ;)

Оновлено: Ваша відповідь "Темними чарами :)" не приймається. Якщо зможете все таки дайте відповідь на запитання  ;)

11

Re: Як пояснити роль амперсанда у виразі, типу (2 & 1)

Пробачте, був не правий, ви цілком маєте рацію. То мене С затуркало.