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.


 

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

29731. Основні системи професійного навчання 18.4 KB
  Типи уроків теоретичного навчання: комбіновані змішані уроки; перевірка виконання учнями домашнього завдання практичного характеру; перевірка оцінка і корекція раніше засвоєних знань навичок і вмінь; відтворення і корекція опорних знань учнів; повідомлення теми мети і завдань уроку та формування мотивації учіння; сприймання й усвідомлення учнями нового матеріалу; осмислення узагальнення і систематизація нових знань; підсумки уроку і повідомлення домашнього завдання. уроки засвоєння нових знань; Мета: оволодіння учнями новими...
29732. Нестандартні уроки, класифікація методики проведення 18.78 KB
  Найпоширеніші серед них урокипресконференції урокиаукціони уроки ділові ігри урокизанурення урокизмагання уроки типу КВК урокиконсультації комп'ютерні уроки урокиконсиліуми урокитвори урокивинаходи урокизаліки театралізовані уроки уроки взаємного навчання учнів уроки творчості урокисумніви урокиконкурси урокифантазії урокиконцерти урокиекскурсії інтегральні уроки тощо. Нестандартні уроки спрямовані на активізацію навчальнопізнавальної діяльності учнів бо вони глибоко зачіпають емоційномотиваційну сферу...
29733. Поняття поурочно-тематичного планування 21.48 KB
  Плани в процесі проектування використовуються дуже широко: навчальний план план навчальновиховної роботи профтехучилища план уроку та ін Кожен з цих планів має своє призначення і свою структуру. План уроку це визначення завдань уроку і перелік основних дій педагога і учнів з освоєння змісту навчального матеріалу. Якщо поурочнотематичний план є проектом педагогічного процесу то план уроку його конструктом. Структура контрольнооблікового уроку Залік це форма перевірки досягнень учнів з вивченої теми чи розділу курсу навчального...
29734. Інструкційно-технологічна карта як дидактичний засіб навчання 85.5 KB
  Інструкційнотехнологічні карти виготовляють за формою: Вимоги до сучасного уроку теоретичного навчання. Загальні вимоги до уроку такі: проведення уроку на основі сучасних наукових досягнень передового педагогічного досвіду закономірностей навчального процесу; проведення уроку на основі методик гуманних дидактичних концепцій; особистісна спрямованість тобто забезпечення учням умов для самореалізації та ефективної навчальнопізнавальної діяльності з урахуванням їхніх інтересів потреб нахилів здібностей та життєвих настанов; оптимальне...