Задавать числа в php можно в разных системах исчисления, но это скорее экзотика. В этой статье вы узнаете что такое приведение типов. Т.е. как нам изменить числа в строку и наоборот что бы это смог прочитать php. Посмотрим как приводиться к числу false.
Проведём арифметические, сравнительные и логические операции над переменными, хотя существуют ещё и обширная тема строковых операций (о ней позже). Увидите пару фокусов со строками и переменными. А так же подумайте какая разница между операторами Идентично равно и присваиванием, хотя у меня никогда с ними не было проблем.
Для составления полноценных выражений нам понадобятся операторы И; ИЛИ; НЕ; С помощью скобочек расставим приоритеты выражения. И наконец то о чем многие молчат или не знают. ПОСТфиксные и ПРЕфиксные операторы ИНкремента и ДЕкремента
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/* Задавать числа можно и в других системах исчисления */ $var1 = 010; /* 8 */ $var2 = 0x4a; /* 74 */ echo $var1.'<br />'.$var2; echo '<br /><br />===<br />'; /* Приведение типов */ $strangeType1 = '127.546'; /* Здесь строка */ $strangeType2 = 'privet777.666'; /* Здесь строка */ echo (int)$strangeType1; /* Тут преобразует к целому числу */ echo '<br />'; echo (int)$strangeType2; /* А тут 0, просто ошибка. Почему он не вывел "ничего" Потому что в интежере должно "что то быть" */ echo '<br />===<br />'; /* Пример с булями */ $false = false; echo (int)$false.' <-- Тут ноль, ложь'; echo '<br /><br />===<br />'; /* К каким ещё типам можно привести? */ $someoneVar = 'Привет мир 01 оллоло, пыщь пыщь 32.34'; echo (int)$someoneVar.' <-- Число<br />'; echo (double)$someoneVar.' <-- Плавающая точка<br />'; echo (string)$someoneVar.' <-- Строка<br />'; echo (bool)$someoneVar.' <-- Булев<br />'; echo '<br />===<br />'; $someoneVar2 = 763.343; echo (int)$someoneVar2.' <-- Число<br />'; echo (double)$someoneVar2.' <-- Плавающая точка<br />'; echo (string)$someoneVar2.' <-- Строка<br />'; echo (bool)$someoneVar2.' <-- Булев<br />'; |
===
0 <— Число
0 <— Плавающая точка
Привет мир 01 оллоло, пыщь пыщь 32.34 <— Строка
1 <— Булев
===
763 <— Число
763.343 <— Плавающая точка
763.343 <— Строка
1 <— Булев
===
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* ОПЕРАЦИИ С ПЕРЕМЕННЫМИ арифметические, сравнения, над строками, логические */ echo '<br />===<br />'; $myNum = 5+4; echo $myNum.'<br />'; $myNum += 4; echo $myNum.'<br />'; $myNum /= 2; echo $myNum.'<br />'; $myNum *= $myNum; echo $myNum.'<br />'; $myNum %= 4; echo $myNum.'<br />'; echo '<br />===<br />'; $myLongString = 'Некоторые'; $myLongString .= ' люди'; $myLongString .= ' делают'; $myLongString .= ' и такие'; $myLongString .= ' странные'; $myLongString .= ' вещи'; $myLongString .= ' <br />Но'; $myLongString .= ' кое-где'; $myLongString .= ' они'; $myLongString .= ' могут'; $myLongString .= ' пригодиться!))'; echo $myLongString; echo '<br />===<br />'; |
9
13
6.5
42.25
2
===
Некоторые люди делают и такие странные вещи
Но кое-где они могут пригодиться!))
===
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
/* ОПЕРАЦИИ СРАВНЕНИЯ Любая операция сравнения даёт булевское значение true или false Меньше < Меньше или равно <= Больше > Больше или равно >= Равно == Идентично === Не идентично !== */ $testNum = (5 == 5.0); echo (int)$testNum.' <-- Равно? (5 == 5.0)<br />'; $testNum = (5 !== 5.0); echo (int)$testNum.' <-- НЕ не равно? (5 !== 5.0)<br />'; $testNum = (5 != 5.0); echo (int)$testNum.' <-- НЕ равно? (5 != 5.0)<br />'; $testNum = (5 === 5.0); echo (int)$testNum.' <-- Идентично? (5 === 5.0)<br />'; echo '<br />===<br />'; /* А ещё есть такие операторы для составления полноценных выражений && И || ИЛИ ! НЕ */ $testNum = ((true) && (5 === 5.0)); /* 2 значения должны быть истинными */ echo (int)$testNum.' <-- false ((true) && (5 === 5.0))<br />'; $testNum = ((5 == 5.0) || (5 === 5.0)); /* хотя бы одно должно быть истинным */ echo (int)$testNum.' <-- true ((true) || (5 === 5.0))<br />'; $testNum = !((5 == 5.0) || (5 === 5.0)); echo (int)$testNum.' <-- false !((5 == 5.0) || (5 === 5.0))<br />'; echo '<br />===<br />'; |
1 <— Равно? (5 == 5.0)
1 <— НЕ не равно? (5 !== 5.0)
0 <— НЕ равно? (5 != 5.0)
0 <— Идентично? (5 === 5.0)
===
0 <— false ((true) && (5 === 5.0))
1 <— true ((true) || (5 === 5.0))
0 <— false !((5 == 5.0) || (5 === 5.0))
===
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* ПРИОРИТЕТЫ ОПЕРАТОРОВ $c = ($a++ +2) <= ((--$b * 4)+($e && $f)); 1) ((--$b * 4)+($e && $f)) */ $priority = 2+2*2+2; echo '2+2*2+2 = '.$priority.'<br />'; $priority = 2+2*(2+2); echo '2+2*(2+2) = '.$priority.'<br />'; $priority = (2+2)*(2+2); echo '(2+2)*(2+2) = '.$priority.'<br />'; echo '<br />===<br />'; /* Инкремент и декремент Может быть ПРЕфиксным = ++$incrementVar; Или ПОСТфиксным $incrementVar++; */ $incrementVar = 7; $decrementVar = 7; echo '++$incrementVar '.++$incrementVar.'<br />'; echo '--$decrementVar '.--$decrementVar.'<br />'; echo '<br />===<br />'; /* Постфиксный инкремент изменяет своё значение ПОСЛЕ операции!!! */ echo '$incrementVar++ '.$incrementVar++.'<br />'; echo '$incrementVar++ После операции '.$incrementVar++.'<br />'; echo '$incrementVar++ И ещё раз после операции '.$incrementVar++.'<br />'; |
2+2*2+2 = 8
2+2*(2+2) = 10
(2+2)*(2+2) = 16
===
++$incrementVar 8
—$decrementVar 6
===
$incrementVar++ 8
$incrementVar++ После операции 9
$incrementVar++ И ещё раз после операции 10
| Категория: PHP
| Тэги: PHP / основы / ШП