Двоичные операторы
? ~ — двоичная инверсия:
$Z=~$X;
? & — двоичное И:
$Z = $X & $Y;
? | — двоичное ИЛИ:
$Z = $X | $Y;
? ^ — двоичное исключающее ИЛИ:
$Z = $X ^ $Y;
? << — сдвиг влево — сдвигает двоичное представление числа влево на один или более разрядов и заполняет младшие разряды нулями:
$Z = $X << $Y;
? >> — сдвиг вправо — сдвигает двоичное представление числа вправо на один или более разрядов и заполняет старшие разряды содержимым са- мого старшего разряда:
$Z = $X >> $Y;
5.11.4. Оператор конкатенации строк. Подстановка значений переменных. Запуск внешних программ
Оператор . (точка) производит конкатенацию строк, то есть соединяет их в одну строку:
$Z = "Строка1" . "Строка2";
// Переменная $Z будет содержать значение "Строка1Строка2"
Очень часто необходимо сформировать строку, состоящую из имени пере-
менной и ее значения. Если написать
$X = "Строка1";
$Z = "Значение равно $X";
то переменная $Z будет содержать значение "Значение равно Строка1", а если написать так:
$X = "Строка1";
$Z = ‘Значение равно $X’;
то переменная $Z будет содержать значение "Значение равно $X". Помните,
что строка в кавычках и строка в апострофах вернет разные результаты.
В последнем случае, для того чтобы получить значение переменной, можно воспользоваться операцией конкатенации строк:
$X = "Строка1";
$Z = ‘Значение равно ‘ . $X;
Рассмотрим еще один пример. Предположим, нужно объединить два слова в одно. Одно из слов задано с помощью переменной. Если написать
$X = "авто";
$Z = "$Xтранспорт"; // $Z = "" или Notice: Undefined variable
то переменная $Z будет содержать пустую строку, так как переменная
$Xтранспорт не определена. В этом случае можно воспользоваться следую-
щими способами:
? использовать конкатенацию строк:
$X = "авто";
$Z = $X . "транспорт"; // $Z = "автотранспорт"
? указать имя переменной в фигурных скобках, так:
$X = "авто";
$Z = "${X}транспорт"; // $Z = "автотранспорт"
или так:
$X = "авто";
$Z = "{$X}транспорт"; // $Z = "автотранспорт"
К любому символу строки можно обратиться как к элементу массива. Доста- точно указать его индекс в квадратных скобках. Индексация начинается с нуля:
$X = "Привет";
echo $X[0]; // Выведет: П
О БРАТИТЕ ВНИМ АНИЕ
В кодировке UTF-8 один символ может кодироваться несколькими байтами. По этой причине обратиться к символу как к элементу массива можно толь- ко после перекодировки.
Если в переменную нужно записать большой объем текста, это можно сде-
лать способом, продемонстрированным в листинге 5.10.
Листинг 5.10. Запись в переменную большого объема текста
<?php
$Y=<<<Metka1
<html>
<head>
<title>Строки</title>
</head>
<body> Metka1;
echo $Y;
$X = "Привет";
echo $X[0]; // выведет "П"
?>
</body>
</html>
В данном примере многострочный текст располагается между метками
(Metka1):
$Y=<<<Metka1
… Metka1;
Название метки может быть любым. Вторая (закрывающая) метка должна быть написана с начала строки, и после нее должна стоять точка с запятой.
Если содержимое строки заключить в обратные кавычки, то это позволит за- пустить внешнюю программу и присвоить переменной результат ее работы (листинг 5.11).
Листинг 5.11. Запуск внешней программы
<?php
$X = `dir`;
echo ‘<textarea cols="70" rows="30">’; echo convert_cyr_string($X, "d", "w"); echo ‘</textarea>’;
?>
Данный код выведет содержимое папки C:\Apache2\htdocs. При выводе ис- пользуется кодировка Dos (кодовая страница 866), поэтому русские буквы будут искажены. Чтобы избежать этого, мы преобразуем кодировку с помо- щью функции convert_cyr_string().
5.11.5. Приоритет выполнения операторов
В какой последовательности будет вычисляться приведенное далее выраже-
ние?
$X = 5 + 10 * 3 / 2;
Это зависит от приоритета выполнения операторов. В данном случае после-
довательность вычисления выражения будет следующей.
1. Число 10 будет умножено на 3, так как приоритет оператора умножения выше приоритета оператора сложения.
2. Полученное значение будет поделено на 2, так как приоритет оператора деления равен приоритету оператора умножения (а операторы с равными приоритетами выполняются слева направо), но выше чем у оператора сложения.
3. К полученному значению будет прибавлено число 5, так как оператор при-
сваивания = имеет наименьший приоритет.
4. Значение будет присвоено переменной $X.
С помощью скобок можно изменить последовательность вычисления выра-
жения:
$X = (5 + 10) * 3 / 2;
Теперь порядок вычислений будет другим:
1. К числу 5 будет прибавлено 10.
2. Полученное значение будет умножено на 3.
3. Полученное значение будет поделено на 2.
4. Значение будет присвоено переменной $X.
Перечислим операторы в порядке убывания приоритета:
1. ++, — — инкремент, декремент.
2. *, /, %, — умножение, деление, остаток от деления.
3. +, - — сложение, вычитание.
4. <<, >> — двоичные сдвиги.
5. & — двоичное И.
6. ^ — двоичное исключающее ИЛИ.
7. | — двоичное ИЛИ.
8. =, +=, -=, *=, /=, %= — присваивание.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Изменение высоты строки (межстрочного интервала) в тексте (0)
- Вывод текста с отступом (0)
- Изменение стиля маркеров списка или удаление маркеров (0)
- Изменение фонового цвета строки при наведении на нее указателя мыши (0)
- Справочник по обобщенным представлениям Django (0)
- Встроенные шаблонные теги и фильтры Django (0)
- Справочник по встроенным фильтрам add Django (0)