Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Логические величины (истина/ложь)




Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические величины создаются двумя способами: при проверке условий и в виде значений переменных. Обе ситуации достаточно просты.

Сравнения существуют в нескольких формах. Чаще всего они встречаются при использовании оператора = в условной команде if. Пример:

if ($sum == 40):

...

Результатом проверки является либо истина, либо ложь: переменная $sum либо равна 40, либо не равна. Если переменная $sum равна 40, проверка дает истинный результат. В противном случае результат равен false.

Логические величины также могут определяться явным присваиванием переменной истинного или ложного значения. Пример:


<?

$flag = TRUE;

if ($flag == TRUE) {

echo "The flag is true!";

}

else

{

echo "The flag is false!";

}

?>

 


 

Если переменная $flag истинна, выводится первое сообщение, а если ложна — второе сообщение.

Возможен и другой вариант — представление истинных и ложных логических величин в виде значений 1 и 0 соответственно. В этом случае предыдущий пример выглядит так:

<?

$flag = 1;

if ($flag == TRUE) {

echo "The flag is true!";

}

else

{

echo "The flag is false!";

}

?>

Cуществует еще один способ:


<?

$flag = 0;

// При выполнении этой команды косвенно

// проверяется условие "if ($flag == TRUE)"

if ($flag)

{

echo "The flag is true!";

}

else

{ echo "The flag is false!";

}

?>


 

Преобразование типов

 

Явное приведение переменной к типу, отличному от того, который изначально предназначался для нее, называется преобразованием (casting) типа. Изменение типа может быть как временным, одноразовым, так и постоянным.

Чтобы временно привести переменную к другому типу, достаточно воспользоваться оператором преобразования типа — указать нужный тип перед именем переменной в круглых скобках (табл. 2).

 

Таблица 2

Операторы преобразования типа переменных

  Оператор преобразования типа Новый тип
(int) или (integer) Целое число  
(real), (double) или (float) Вещественное число  
(string) Строка  
(array) Массив  
(object) Объект  
         

 

Простой пример преобразования типов:

$variable1= 13; // $variable1 присваивается целое число 13

$variable2 = (double) $variable1; // $variable2 присваивается 13.0

Хотя переменная $variable1 первоначально содержала целое число 13, преобразование (double) преобразует ее к вещественному типу (поэтому число 13 превращается в 13.0). Полученное значение присваивается переменной $variable2.

Из предыдущего раздела вы знаете, что при суммировании целого числа с вещественным получается вещественный результат. Однако тип результата можно изменить посредством явного преобразования типа:

$variablel = 4.0;

$variable2 = 5;

$variable3 = (int) $variable1 + $variable2; // $variable3 = 9

Следует заметить, что преобразование вещественного типа к целому всегда сопровождается округлением:

$variablel = 14.7:

$variable2 = (int) $varlable1; // $variable2 = 14:

Строку или переменную другого типа также можно преобразовать в элемент массива. В этом случае преобразованная переменная становится первым элементом массива:

$variable1 = 1114;

$array1 = (array) $varable1;

echo $array1[0]; // Выводится значение 1114

Наконец, любой тип данных можно преобразовать в объект. Переменная становится атрибутом объекта, и ей присваивается имя scalar:

$model = "Toyota";

$new_obj = (object) $model;

Ссылка на исходное строковое значение выглядит так:

echo $new_obj->scalar;

 

Массивы

Массив представляет собой список однотипных элементов. Существует два типа массивов, различающиеся по способу идентификации элементов. В массивах первого типа элемент определяется индексом в последовательности. Массивы второго типа имеют ассоциативную природу, и для обращения к элементам используются ключи, логически связанные со значениями. Впрочем, на практике операции с массивами обоих типов выполняются сходным образом. По размерности массивы делятся на одномерные и многомерные.

Одномерные индексируемые массивы

При обращении к элементам одномерных индексируемых массивов используется целочисленный индекс, определяющий позицию заданного элемента.

Обобщенный синтаксис элементов одномерного массива:

$имя[индекс1];

Одномерные массивы создаются следующим образом:

$meat[0] = "chicken";

$meat[l] = "steak";

$meat[2] = "turkey";

При выполнении следующей команды:

echo $meat[1]:

в браузере выводится строка

steak

При создании массивов также можно воспользоваться функцией array (). Массив $meat из предыдущего примера создается командой

$meat = аrrау("chicken", "steak", "turkey");

Приведенная выше команда pri nt приводит к тому же результату — выводу строки steak.

Чтобы включить новый элемент в конец массива, можно просто присвоить значение переменной массива без указания индекса. Следовательно, массив $meat можно создать еще одним способом:

Smeat[] = "chicken";

$meat[] = "steak";

Smeat[] = "turkey";

Одномерные ассоциативные массивы

Ассоциативные массивы особенно удобны в ситуациях, когда элементы массива удобнее связывать со словами, а не с числами.

Предположим, вы хотите сохранить в массиве лучшие сочетания вин и блюд. Проще всего было бы хранить в массиве пары «ключ/значение» — например, присвоить сорт вина названию блюда. Самым разумным решением будет использование ассоциативного массива:

Spairings["zinfandel"] = "Broiled Veal Chops";

$pairings["merlot"] = "Baked Ham";

$pairings["sauvignon"] = "Prime Rib";

$pairings["sauternes"] = "Roasted Salmon";

Ассоциативный массив заметно экономит время и объем программного кода, необходимого для вывода определенных элементов массива. Допустим, вы хотите узнать, с каким блюдом лучше всего идет «Мерло». Нужная информация выводится простой ссылкой на элемент массива $pairings: echo $pairings["merlot"]; // Выводится строка "Baked Ham" Ассоциативные массивы также можно создавать функцией РНР аггау():

Spairings = аrrау(

zinfandel => "Broiled Veal Chops",

merlot => "Baked Ham",

sauvignon => "Prime Rib",

sauternes => "Roasted Salmon");

Отличается только способ создания массива pairings, а функциональные возможности остаются без изменений.

Многомерные индексируемые массивы

Многомерные индексируемые массивы работают практически так же, как и их одномерные прототипы, однако элементы в них определяются несколькими индексами вместо одного. Теоретически размерность индексируемого массива не ограничивается, хотя в большинстве приложений практически не встречаются массивы с размерностью выше 3.

Обобщенный синтаксис элементов многомерного массива:

$имя[индекс1][индекс2]..[индексN];

Пример ссылки на элемент двухмерного индексируемого массива:

$position = $chess_board[5][4];

Многомерные ассоциативные массивы

Многомерные ассоциативные массивы также существуют в РНР (и приносят определенную пользу). Допустим, в массиве $раirings из предыдущего примера должна храниться информация не только о сорте, но и о производителе вина. Это можно сделать следующим образом:

$pairings["Martinelli"]["zinfandel"] = "Broiled Veal Chops";

$pairings["Beringer"]["merlot"] = "Baked Ham";

$pairings["Jarvis"]["sauvignon"] = "Prime Rib";

$pairings["Climens"]["sauternes"] = "Roasted Salmon";

Смешанное индексирование

В многомерных массивах допускается смешанное индексирование (числовое и ассоциативное). Допустим, вы хотите расширить модель одномерного ассоциативного массива для хранения информации об игроках первого и второго состава футбольной команды. Решение может выглядеть следующим образом:

$Buckeyes["quarterback"] [1] = "Bellisari";

$Buckeyes["quarterback"] [2] = "Moherman":

$Buckeyes["quarterback"] [3] = "Wiley";

 

Далее приведен пример инициализации массива и вывода значений массива с соответствующем индексом. Такой вывод осуществляется функцией print_r ().

<?

$firstquarter = array(1 => 'Январь', 'Февраль', 'Март', 'Апрель', 'Май');

print_r($firstquarter);

?>

Рис. 10. Результат работы программы с массивом

 

Операторы

Оператор представляет собой символическое обозначение некоторого действия, выполняемого с операндами в выражении. Многие операторы известны любому программисту, но вы должны помнить, что РНР выполняет автоматическое преобразование типов на основании типа оператора, объединяющего два операнда, — в других языках программирования это происходит не всегда.

Приоритет и ассоциативность операторов являются важными характеристиками языка программирования (см. раздел «Ассоциативность операторов» этой главы). В табл. 3 приведен полный список всех операторов, упорядоченных по убыванию приоритета. Приоритет, ассоциативность и сами операторы подробно рассматриваются в разделах, следующих за таблицей.

 

Таблица 3

Операторы РНР

Оператор Ассоциативность Цель
() - Изменение приоритета
new - Создание экземпляров объектов
! ~ П Логическое отрицание, поразрядное отрицание
++ -- П Инкремент, декремент
@ П Маскировка ошибок
/ * % Л Деление, умножение, остаток
+ -. Л Сложение, вычитание, конкатенация
<< >> Л Сдвиг влево, сдвиг вправо (поразрядный)
< <= > >= - Меньше, меньше или равно, больше, больше или равно
==!= === <> - Равно, не равно, идентично, не равно
& ^ | Л Поразрядные операции AND, XOR и OR
&& || Л Логические операции AND и OR
?: П Тернарный оператор
= += *= /=.= П Операторы присваивания
%= &= |= ^=    
<<= >>=    
AND XOR OR Л Логические операции AND, XOR и OR

 

Математические операторы

Математические операторы (табл. 4) предназначены для выполнения различных математических операций и часто применяются в большинстве программ РНР. К счастью, их использование обходится без проблем.

Таблица 4

Математические операторы

Пример Название Результат
$а + $b Сложение Сумма $а и $b
$а-$b Вычитание Разность $а и $b
$а*$b Умножение Произведение $а и $b
$а/$b Деление Частное от деления $а на $b
$а % $b Остаток Остаток от деления $а на $b

 

РНР содержит широкий ассортимент стандартных математических функций для выполнения основных преобразований и вычисления логарифмов, квадратных корней, геометрических величин и т. д. За обновленным списком таких функций обращайтесь к документации.

Операторы присваивания

 

Операторы присваивания задают новое значение переменной. В простейшем варианте оператор присваивания ограничивается изменением величины, в других вариантах (называемых сокращенными операторами присваивания) перед присваиванием выполняется некоторая операция. Примеры таких операторов приведены в табл. 5.

 

Таблица 5.

Операторы присваивания

 

Пример Название Результат
$а = 5; Присваивание Переменная $а равна 5
$а += 5; Сложение с присваиванием Переменная $а равна сумме $а и 5
$а *= 5; Умножение с присваиванием Переменная $а равна произведению $а и 5
$а/=5; Деление с присваиванием Переменная $а равна частному отделения $а на 5
$а.= 5; Конкатенация с присваиванием Переменная $а равна конкатенации $а и 5

 

Умеренное использование операторов присваивания обеспечивает более наглядный и компактный код.

 

Строковые операторы

 

Строковые операторы РНР (табл. 6) обеспечивают удобные средства конкатенации (то есть слияния) строк. Существует два строковых оператора: оператор конкатенации (.) и оператор конкатенации с присваиванием (.=), описанный в предыдущем разделе «Операторы присваивания».

Конкатенацией называется объединение двух и более объектов в единое целое.

 

Таблица 6

Строковые операторы

Пример Название Результат
$a = "abc"."def" Конкатенация Переменной $а присваивается результат конкатенации $а и $b
$а - "ghijkl" Конкатенация с присваиванием Переменной $а присваивается результат конкатенации ее текущего значения со строкой "ghijkl"

 

Пример использования строковых операторов:

// $а присваивается строковое значение "Spaghetti & Meatballs" $а = "Spaghetti". "& Meatballs"

// $а присваивается строковое значение "Spaghetti & Meatballs are delicious" $a.= "are delicious";

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...