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.


 

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

31594. ПАТОФІЗІОЛОГІЯ СИСТЕМИ КРОВІ 82 KB
  Численні форми патології і реактивні зміни в системі крові умовно можна обєднати у 5ть груп. Типові форми патології і реактивних змін загального обєму співвідношення плазми і формених елементів крові. Типові форми патології зсідаючої та протизсідаючої систем крові порушення гемостазу.
31595. ПАТОФІЗІОЛОГІЯ ТРАВЛЕННЯ 85.5 KB
  Класифікація недостатності травлення: За масштабами порушення: а загальна тотальна порушення засвоєння всіх видів поживних речовин і б селективна парціальна порушення засвоєння окремих класів поживних речовин. інфекційного походження вплив бактерій бактеріальних токсинів вірусів найпростіших гельмінтів обумовлену дією фізичних факторів травми гостра променева хвороба повязану із дією хімічних агентів отруєння неорганічними і органічними речовинами дисрегуляційну різні види порушення нервової і гуморальної...
31596. ПОРУШЕННЯ БІЛКОВОГО та ВУГЛЕВОДНОГО ОБМІНІВ 80.5 KB
  Порушення білкового обміну проявляється розвитком білкової недостатності яка може обумовлюватися: 1 Аліментарними причинами. 2 Порушенням біосинтезу білка. 3 Порушенням проміжного обміну амінокислот.
31597. ПОРУШЕННЯ ВИЩОЇ НЕРВОВОЇ ДІЯЛЬНОСТІ 85.5 KB
  Порушення відчуттів і сприйняття подразнень із зовнішнього середовища. Порушення зорової сенсорної системи зона кори навколо шпорної борозни sulcus clcrinus. Ушкодження зорового аналізатора письмової мови ІІ сигнальна система gyrus ngulris lobulus prietlis inferior супроводжується виникненням алексії порушення здатності читати та розуміти написане.