68930

Посилання, умовний оператор

Лекция

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

Неважко здогадатися що виведе програма 66. Краще використовувати жорсткі посилання: хоч би виходячи з того що для них потрібний один оператор. Умовний оператор Проблему вибору можна без докорів совісті віднести до глобальних проблем.

Украинкский

2014-09-27

43 KB

0 чел.

Лекція № 6

Тема:  Посилання, умовний оператор

План

  1.  Жорсткі посилання
  2.  Символічні посилання
  3.  Умовний оператор

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

Жорсткі посилання

Жорстке посилання — це просто псевдонім імені іншої змінної. Посилання на посилання на змінну (багаторівневі посилання), як в мові Perl, не підтримуються. Для створення жорсткого посилання використовується оператор &:

<? $х   =   77; $link   =   S$x; $link = 66; echo $link; ?>

Неважко здогадатися, що виведе програма — 66. Для розриву зв'язку між змінною і посиланням використовується функція UnSet:

UnSet ($link);

Саму змінну не можна видалити до тих пір, поки на неї посилається хоч би одне посилання.

Символічні посилання

Символічне посилання — це звичайна змінна, що містить ім'я іншої змінної. Для доступу до значення посилання використовується подвійний знак долара $$:

<?

$x = 77;

$link = "x"; // символічне посилання на змінну $х

echo $$link; // виводить 77

echo $link; // виводить x

$$link = 66; // аналогічно $х = 66

echo $x; // виведе 66

?>

Я не рекомендую використовувати символічні посилання, їх потрібно використовувати в самих крайніх випадках, яких буде небагато. Використання символічних посилань може і без того заплутати заплутану програму. Краще використовувати жорсткі посилання: хоч би виходячи з того, що для них потрібний один оператор $. А взагалі прагніть не використовувати посилання — так ваше життя стане трохи простіше.

Конструкції мови PHP дуже схожі на конструкції мови C, тому, якщо ви знаєте мову C, дуже швидко освоїте PHP. Потрібно відмітити, що синтаксис PHP дуже лаконічний, а ми знаємо, що «стислість — сестра таланту». PHP ще раз дозволяє нам переконатися в цьому.

Умовний оператор

Проблему вибору можна без докорів совісті віднести до глобальних проблем. Як часто вам доводиться вибирати? То чом би не примусити комп'ютер зробити вибір за нас? Для цього і призначений умовний оператор.

Конструкція if-eIse (умовний оператор) є, напевно, найпоширенішою конструкцією в програмах. Яка ж серйозна програма не використовує цю конструкцію?

Синтаксис конструкції if-else такий:

if (логічний   вираз) оператор_1;

else оператор_2;

Перший оператор буде виконаний, якщо логічний вираз істинний, другою — якщо логічний вираз помилковий. Можна також використовувати скорочену форму конструкції, без другого оператора:

if    (логічний   вираз) оператор_1;

В цьому випадку ми можемо обійтися без «else». Якщо вам потрібно виконати не одного оператора, а цілу групу, тоді цих операторів слід помістити в блок операторів { }:

if    (логічний   вираз) {

оператор_1;

оператор_i;

} else {

оператор_i+l;

оператор_n;

}

Здається, я ще жодного разу не звертав уваги на роздільник операторів — це символ крапка з комою ";". Зовсім очевидно, що ми можемо записати декілька операторів в один рядок:

if (логічний вираз) { оператор_1; ... оператор_i; }

В даному випадку після фігурної дужки можна ставити крапку з комою, а можна і не ставити. Але якщо ви думаєте використовувати повну конструкцію (тобто з «else»), тоді крапка з комою не ставиться. Якщо ж замість блоку операторів використовується тільки один оператор (див. загальний синтаксис), тоді крапка з комою після нього (перед else) обов'язкова:

if    ($a>5)    echo   "a>5"; else   echo   "a<=5";

Існує ще один варіант конструкції if-else. Ось його синтаксис:

if    (логічний   вираз   1)

оператор_1 ;

elseif    (   логічний   вираз   2   )

оператор_2;

else

оператор_3;

Здається дана конструкція не дуже зручна, тому я раджу використовувати її класичний варіант.

Для повноти опису даної конструкції потрібно сказати, що ви можете використовувати ще один — третій альтернативний варіант (цього разу вже точно останній) конструкції:

if    (логічний   вираз   1):

оператор_1;

elseif    (   логічний   вираз   2   ) :

оператор_2;

else :

оператор_3;

endif

Якщо пропустити крапки з комою, то ви отримаєте повідомлення про помилку.


 

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

24422. Координатор МАКЕ и система управления исходным кодом SCCS 110.5 KB
  Описание взаимозависимостей содержит команды которые должны быть выполнены если обнаружится что некоторый модуль устарел перестал соответствовать действительности. Такие команды обеспечивают реализацию всех необходимых для модернизации модуля действий. В одних системах интерпретатор прост но совокупность команд не образует язык программирования а в других имеются отличные языки программирования на уровне системных команд но выполнение отдельной команды осложнено. Контрольная точка задается для конкретной формы доступа к памяти...
24423. Общая характеристика основных компонентов ОС ПЭВМ 93 KB
  Сетевой уровень занимает в модели OSI промежуточное положение: к его услугам обращаются протоколы прикладного уровня сеансового уровня и уровня представления. Для выполнения своих функций сетевой уровень вызывает функции канального уровня который в свою очередь обращается к средствам физического уровня. Физический уровень выполняет передачу битов по физическим каналам таким как коаксиальный кабель витая пара или оптоволоконный кабель. Канальный уровень обеспечивает передачу кадра данных между любыми узлами в сетях с типовой топологией...
24424. Таймеры счётчики ОМЭВМ 204 KB
  Основным отличием конфигураций сетей Fast Ethernet является сокращение диаметра сети примерно до 200 м что объясняется сокращением времени передачи кадра минимальной длины в 10 раз за счет увеличения скорости передачи в 10 раз по сравнению с 10мегабитной сетью Ethernet. Если среда свободна то узел имеет право начать передачу кадра. Последний байт носит название ограничителя начала кадра. Наличие двух единиц идущих подряд говорит приемнику о том что преамбула закончилась и следующий бит является началом кадра.
24425. Основные компоненты современных систем баз данных. Классификация и модели данных, реализуемых в СУБД 318 KB
  Классификация и модели данных реализуемых в СУБД. База данных это данные организованные в виде набора записей определенной структуры и хранящиеся в файлах где помимо самих данных содержится описание их структуры. Метаданные Данные о структуре базы данных.
24426. Язык манипулирования данными, концепции и возможности языка SQL. Функции администратора баз данных 181.5 KB
  Перечисленные устройства передают кадры с одного своего порта на другой анализируя адрес назначения помещенный в этих кадрах. По адресу источника кадра коммутатор делает вывод о принадлежности узлаисточника тому или иному сегменту сети. Одновременно с передачей кадра на все порты коммутатор изучает адрес источника кадра и делает запись о его принадлежности к тому или иному сегменту в своей адресной таблице. При каждом поступлении кадра на порт коммутатора он прежде всего пытается найти адрес назначения кадра в адресной таблице.
24427. Адреса и сети Интернет. Архитектура и методы использования баз данных на Web 52 KB
  10277 Стадии разработки: постановка задачи стадия Техническое задание; анализ требований и разработка спецификаций стадия Эскизный проект; проектирование стадия Технический проект; реализация стадия Технический проект. Проектирование. Процесс проектирование сложного ПО обычно включает: проектирование общей структуры определение основных частей компонентов и их взаимосвязей по управлению и данным; декомпозицию компонентов и построение структурных иерархий в соответствии с рекомендациями блочноиерархического подхода;...
24428. Классификации сайтов. Сервисы Интернет 40.5 KB
  Сервисы Интернет. Классификация сайтов Все многообразие информации в интернете обозначаемой одним емким словом сайт можно условно разделить по: задачам сайта цели его создания и фунционирования коммерческий некоммерческий информационный рекламный поисковая система. объемности хоумпейдж сайтывизитки интернетпредставительства вебпорталы и т. Интернет сервисы: Пользователь работающий в Интернет имеет дело с несколькими различными видами услуг.
24429. Концепция и возможности XML-технологий 67 KB
  Концепция и возможности XMLтехнологий. XML Extensible Markup Language[1] это язык разметки описывающий объектов данных называемых XML документами. сам по себе XML не содержит никаких тэгов предназначенных для разметки он просто определяет порядок их создания. Таким образом если например мы считаем что для обозначения элемента rose в документе необходимо использовать тэг flower ; то XML позволяет свободно использовать определяемый нами тэг и мы можем включать в документ фрагменты подобные следующему: flower rose flower Набор...
24430. Архитектура стека TCP/IP. Протокол IP. Заголовок IP-пакета. IP-адресация 238.5 KB
  Заголовок IPпакета. В его задачу входит продвижение пакета между сетями от одного маршрутизатора до другого до тех пор пока пакет не попадет в сеть назначения. Заголовок IPпакета IPпакет состоит из заголовка и поля данных. Значение длины заголовка IPпакета также занимает 4 бита и измеряется в 32 битовых словах.