68926

Змінні і типи даних

Лекция

Информатика, кибернетика и программирование

Чому я спожив вираз Практично у всіх Існують і такі мови в яких немає змінних як таких. На щастя РНР не відноситься до таких мов він найзвичайніша мова з погляду наявності змінних. Всі дані з якими працює програма зберігаються у вигляді змінних.

Украинкский

2014-09-27

56.5 KB

0 чел.

Лекція № 2

Тема:  Змінні і типи даних

План

  1.  Правила задання змінних
  2.  Типи даних
  3.  Функції визначення і завдання типу змінних.
  4.  Логічні змінні і їх особливості в РНР

Практично у всіх мовах програмування є таке поняття, як змінна. Чому я спожив вираз «Практично у всіх»? Існують і такі мови, в яких немає змінних, як таких. На щастя, РНР не відноситься до таких мов — він найзвичайніша мова, з погляду наявності змінних.

Змінна — це область оперативної пам'яті, доступ до яких здійснюється по імені. Всі дані, з якими працює програма, зберігаються у вигляді змінних.

Правила задання змінних

Як вже наголошувалося вище, в РНР обов'язково перед ім'ям змінної потрібно ставити знак долара — так інтерпретатору легше виділити змінні з «сірої маси» тексту програми.

У офіційній документації РНР сказане, що імена змінних можуть складатися не тільки з латинських букв, але з будь-яких символів, код яких більше 127. Це означає, що імена змінних можуть містити російські букви. Проте я настійно раджу вам не використовувати російськомовні імена — адже в різних кодуваннях букви кирилиці мають різні коди.

Визначимо правила завдання змінних в РНР:

Ім'я змінної повинне починатися із знаку долара $.

Ім'я змінної не повинне містити ніяких інших символів, окрім символів латинського алфавіту, цифр і знаку підкреслення. Якщо ви використовуватимете це правило, ви істотно полегшите собі життя.

Імена змінних в РНР, як і в C, чутливі до регістра символів, тобто змінні $а і $А  — це здійснено разні змінні.

Оголошувати змінну можна в будь-якому місці програми, але до місця першого її використання.

При оголошенні змінних можна не скупитися — оголошуйте стільки, скільки вам потрібно. Звичні методи оптимізації, які застосовувалися 20 років тому (наприклад, надмірна економія пам'яті — чим менше за змінні використовує програма, тим краще), за часів перших комп'ютерів, не спрацюють: ваша програма не працюватиме швидше, якщо ви будете в збиток власному комфорту використовувати одну змінну замість 5. До того ж можна наробити помилок, які дуже важко знайти.

Типи даних

Змінні в РНР можуть містити все, що завгодно — будь-яку інформацію. Виняток становлять тільки константи, які можуть містити тільки число або рядок.

Такого поняття як покажчик (це така змінна, яка містить не конкретне значення, а указує на область пам'яті, де знаходиться це значення), добре знайомого нам з мови C, взагалі не існує. При привласненні змінна копіюється «один в один», яку б структури вона не мала. Припустимо, що у нас є дві змінні - масив і рядок. Якщо ми першою змінною привласнимо значення другій, то наш масив буде назавжди втрачений, а змінна, яка містила масив, міститиме рядок — це і означає, що копіюється не тільки значення змінної, як в інших мовах, але і структура. Правда, починаючи з 4-ої версії, в PHP з'явилися жорсткі і м'які посилання, але про них   ми поговоримо пізніше.

Розглянемо наступне оголошення змінних:

$а   =   10;

$А   =   "Hello";

Як ви бачите, при оголошенні змінних ми не вказали їх тип. Вибір типу здійснюється самим інтерпретатором. Проте іноді PHP може помилитися і зіставити змінній неправильний тип. Тому потрібно задати тип явно. Про те, як це зробити, ми поговоримо трохи пізніше, а поки розглянемо основні типи змінних.


Типи змінних в PHP

Тип змінної

Опис

integer

Ціле число. Діапазон значень: від -2 147 483 648 до 2 147 483 647 (32 біта). Даний тип відповідає типу long int в мові С (longint - в Pascal)

double

(або float)

Дійсне число дуже великої точності

string

Рядок. Це дуже важливий тип, оскільки в більшості випадків сценарії займаються формуванням рядків.

array

Масив

object

Об’єкт. Мова РНР підтримує об’єкти. Доступ до елементів об’єкту відбувається за допомогою оператора ->

bool

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

Функції визначення і завдання типу змінних

Мову PHP   надає багато засобів для визначення типу змінних. Ви можете використовувати цілих сім функцій для визначення типу:

Is_int(Sx) або is_integer(Sx) — повертає   true, якщо передана змінна — ціле число.

Is_double($x) або is_float(Sx) — повертає true, якщо передана змінна — дійсне число.

is_string(Sx) — повертає true, якщо передана змінна — рядок.

is_array(Sx) — повертає true, якщо передана змінна — масив.

is_object($x) — повертає true, якщо змінна є об'єктом.

is_bool(Sx) — повертає true, якщо змінна оголошена, як логічна.

gettype(Sx) — повертає рядки, відповідні типу змінної:   integer,     double,     string,     object,     array,     bool  або unknown   type, якщо неможливо визначити тип (коли тип змінної не будовується в PHP, а додається за допомогою модулів, що розширюють можливості мови).

Якщо PHP неправильно визначив тип змінної, можна вказати його явно. Для цього використовується функція settype(Sx, Stype), де $type — це один з рядків, що повертаються функцією gettype(). Наприклад:

settype($x,"double");

Функція повертає значення false, якщо неможливо привести тип змінної $х до вказаного типу $type.

Логічні змінні і їх особливості в PHP

Напевно, ви відмітили, що більшість функцій для визначення типу повертають логічне значення true або false (всі функції, окрім gettype()). Зараз самий час поговорити про логічні змінні і пов'язаних з ними «підводними каменями».

У PHP істиною є не будь-яке рівне нулю число, будь-який непорожній рядок, значення true. Значення false, порожній рядок, нуль — це брехня. Для того, щоб зрозуміти це проведемо ряд експериментів з логічними змінними. При цьому ми небагато забіжимо вперед і використовуватимемо умовного оператора If. Проте, якщо ви знайомі з якою-небудь алгоритмічною мовою (Сі, Паскаль і т.п), то без зусиль зрозумієте сенс оператора. Тим паче, що текст прикладів супроводжується докладними коментарями. Інакше ви можете повернутися до цього пункту пізніше.

Отже, створіть сценарій logical.php:

<? echo   false; echo   true; ?>

Перший оператор виводить порожній рядок, тобто нічого не виводить, а другою — виведе 1. Вище було сказано, що ненульове значення приймається, як істина.

У використанні логічних змінних в PHP є ще одна особливість. Якщо в операторах порівняння (= =, !=, <,") один тип є логічним, то і другий також сприймається, як логічний. Модифікуємо наш сценарій так:

<?

$х=10;

if ($х==1) echo " Змінна рівна l\n";

if ($x==true) echo "Змінна рівна True\n";

У першому рядку змінної $х було привласнено значення 10. Потім $х порівнюється з 1 і якщо $х рівне 1, то виводиться рядок «Змінна рівна 1». Потім значення змінної $х порівнюється із значенням True. І якщо $х рівне true, то виводиться рядок «Змінна рівна True». Виходячи з приведеного вище твердження, повинна бути виведеною тільки другий рядок. Так воно і відбувається.

Розглянемо ще один приклад:

<?

$х   =   100;

$у   =   true;

echo   "x=   $х\ п";

echo   "y=   $у\ п";

if    ($x==$y)    echo   "X=Y";

?>

Ось тут вже зовсім смішна ситуація: спочатку програма повідомляє, що X = 100,   Y = 1, а потім, що X = Y.


 

А также другие работы, которые могут Вас заинтересовать

83925. Требования к транспортированию, приему и хранению сырья, пищевых продуктов 26.45 KB
  Мороженое мясо хранят на стеллажах или подтоварниках штабелями. Субпродукты хранят в таре поставщика на стеллажах или подтоварниках. Птицу мороженую или охлажденную хранят в таре поставщика на стеллажах или подтоварниках укладывая в штабеля; для лучшей циркуляции воздуха между ящиками коробами рекомендуется прокладывать рейки. Рыбу мороженую филе рыбное хранят на стеллажах или подтоварниках в таре поставщика.
83926. Требования к обработке сырья и производству продукции 29.67 KB
  При приготовлении блюд кулинарных и кондитерских изделий необходимо строго соблюдать поточность технологических процессов. Готовность изделий из мяса и птицы определяется выделением бесцветного сока в месте прокола и серым цветом на разрезе продукта а также температурой в толще продукта. Для натуральных рубленых изделий не ниже 85 С для изделий из котлетной массы не ниже 90 С. Готовность изделий из рыбного фарша и рыбы определяется образованием поджаристой корочки и легким отделением мяса от кости в порционных кусках.
83927. Требования к раздаче блюд и отпуску полуфабрикатов и кулинарных изделий 25.48 KB
  Горячие блюда супы соусы напитки при раздаче должны иметь температуру не ниже 75 С вторые блюда и гарниры не ниже 65 С холодные супы напитки не выше 14 С. Готовые первые и вторые блюда могут находиться на мармите или горячей плите не более 23 ч с момента изготовления. Салаты винегреты гастрономические продукты другие холодные блюда и напитки должны выставляться в порционированном виде в охлаждаемый прилавоквитрину и реализовываться в течение одного часа. При составлении меню 23разовогопитания для организованных коллективов...
83928. Информационная система по учету затрат на приобретение материалов подотчетным лицом в розничной торговле 3.69 MB
  Архитектура информационных систем это концепция описывающая модель структуру выполняемые функции и взаимосвязь компонентов как отдельно взятой информационной системы так и ИТ-инфраструктуры в целом. А также углубление расширение навыков по построению архитектуры информационной системы закрепление знаний...
83929. Разработка приложения баз данных для автоматизации операции учета в отделе кадров 66.41 KB
  Для решения подобных проблем применяются автоматизированные базы данных. За последние несколько лет вырос уровень потребительских качеств систем управления базами данных СУБД: разнообразие поддерживаемых функций удобный для пользователя интерфейс сопряжение с программными продуктами в частности...
83931. Государственный бюджет, проблема сбалансированности. Управление государственным долгом 526 KB
  Целью моей работы является: анализ государственного бюджета его положение на данный момент выявить способы управления государственным долгом и методы достижения сбалансированности бюджета страны.
83932. Система стимулирования труда и пути их совершенствования 128 KB
  Механизм внешнего воздействия на трудовое поведение реализуется в системе стимулов к труду. Стимулирование – создание такой трудовой, экономической ситуации, которая могла бы заинтересовать объект стимулирования в определенном трудовом поведении.
83933. Организация работы механо-сборочного цеха 219.5 KB
  Задачи курсовой работы: охарактеризовать предприятие; описать планирование в структурном подразделении на предприятии; изучить виды планов; составить калькуляцию на изготовление изделия; изобразить схему организационной структуры подразделения; изучить рабочее место контролёра...