Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една

Подобни документи
Програмиране на Паскал

C++

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф

Slide 1

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

Структура на програма в C - Част 9 - низове от символи, C-string

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве

Маисви

5

ICS Natioanal

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5

Формуляри

ОСНОВИ НА ЕЗИКА С# Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за

Microsoft Word - TB201L.doc

Проф

-

Структура на програма в C - Част 2 - типове, функции

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври

HTML - списъци

Информатика

Десислава Цокова ЗАБАВНИ ОБУЧИТЕЛНИ ИГРИ С LEARNING APPS НЕОБХОДИМИ РЕСУРСИ Компютър, интернет за създаването и ползването им. Регис

Виртуални функции

Mathematica CalcCenter

Lush Green

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Видеорекордер АHD-3908 Ръководство за експлоатация Моделите от тази серия са отличен избор за цифрово наблюдение на обекти в различни сфери, където во

Microsoft Word - nbb2.docx

CSRF on JSON data

Extended monitoring with The Dude ros_command

Проект 1: Форма за решаване на тест Създайте приложение, което тества знанията на ученика по Информатика. Върху формата да се разположат въпроси с по

При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и

HTML - формат на текст

Препис:

Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една PHP страница, със стандартни HTML <head>, <title> и <body> tags. Това не е задължително необходимо, но е добра практика. Съхранете файла с разширение.php. В <body> tag, създайте една PHP секция, която извежда съобщение Hello World! в прозореца на браузъра. Вашият код е нещо подобно на: <html> <head> <title>hello, World!</title> </head> <body> echo "Hello, World!"; // Вместо echo може да използвате print. phpinfo(); </body> </html> PHP може да се вгради многократно в един HTML документ. Например сега ще изведем заглавието на страницата чрез PHP код: <html> <head> <title> echo "Hello, Boys and Girls!"; </title> </head> <body> echo "Hello, World!"; </body> </html> 1

Примерът по-долу е аналогичен по резултат на горния, но демонстрира как може да се вгради HTML код в PHP скрипт. echo "<HTML> <HEAD> <TITLE>Hello, Boys and Girls!</TITLE> </HEAD> <BODY> <b>hello, World!</b> </BODY> </HTML>"; Символни низове Символните низове в PHP могат да се ограждат с кавички и с апостроф: <html> <head> <title> echo "Hello, Boys and Girls!"; </title> </head> <body> echo "Hello, World!"; //в кавички echo ("Hello, World!"); //можете да използвате и скоби echo 'Hello, World!'; //в апостроф echo ('Hello, World!'); //можете да използвате и скоби // Използване на print print "Hello, world! "; print ("Hello, world! "); print 'Hello, World!'; print ('Hello, World!'); </body> </html> echo() vs. print() Това са езикови конструкции, а не функции въпреки, че print() се държи като функция връща стойност. Параметри: echo "Hello, World!","Hello, World!"; // ok echo (expression), (expression), (expression); // ok 2

echo (expression string, expression string ); // fail print (expression string); // ok, тоест print() приема само един параметър (израз стринг) print (expression), (expression), (expression); // fail Изводи: Когато стринга (символен низ, литерал) е поставен в кавички, вие можете да включите и имена на променливи в него. Кавичка в такъв низ се представя с \". Когато стринга (символен низ, литерал) е поставен в апострофи обаче и включите променлива в него няма да се отпечата стойността на променливата, а нейното име, тоест - резултатът няма да е такъв какъвто бихме очаквали!!! Апостроф в низове от последния тип се представя като \. Точката (.) в оператори print и echo е оператор за конкатениране. print ("10-7="). (10-7). "<br>"; //Извежда: 10-7= 3 $name="иван Иванов";echo "Здравей, ".$name."<br>"; //Здравей, Иван Иванов print "He's name is \"$name\""; //He's name is "Иван Иванов" Задача: Самостоятелно: Използвайки само само echo/print изведете в прозореца на браузъра следното: Сума: 10 + 7 = 17 Разлика: 10-7 = 3 Произведение: 10 * 7 = 70 Частно: 10 / 7 = 1.4285714285714 Остатък от деление: 10 % 7 = 3 Примерна реализация: <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <TITLE>echo/print</TITLE> </HEAD> <BODY> <? echo ("10+7="), (10+7), "<br>"; //ok echo ("10-7="), (10-7), "<br>"; //ok echo ("10*7="), (10*7), "<br>"; //ok echo ("10/7="), (10/7), "<br>"; //ok echo ("10%7="), (10%7), "<br>"; //ok print ("10+7="). (10+7). "<br>"; //ok print ("10-7="). (10-7). "<br>"; //ok print ("10*7="). (10*7). "<br>"; //ok print ("10/7="). (10/7). "<br>"; //ok print ("10%7="). (10%7). "<br>"; //ok </BODY> </HTML> Операции в PHP: аритметични - +, -, *, /, % логически: && и and (лигическо И), и or (логическо ИЛИ),! (не) за сравнение: ==,!=. >, <, >=, <=, ===(идентично на),!==; и др. 3

Скриптът по-долу създава две променливи $x=10 и $y=7 и изчислява и извежда сумата, разликата, произведението, частното и остатъка от делението им в прозореца на браузъра по следния начин: 10 + 7 = 17 10-7 = 3 10 * 7 = 70 10 / 7 = 1.4285714285714 10 % 7 = 3 $x=10; $y=7; $result=$x+$y; echo "$x + $y = $result<br />"; $result=$x-$y; echo "$x - $y = $result<br />"; $result=$x*$y; echo "$x * $y = $result<br />"; $result=$x/$y; echo "$x / $y = $result<br />"; $result=$x%$y; echo "$x % $y = $result<br />"; 10 + 7 = 17 10-7 = 3 10 * 7 = 70 10 / 7 = 1.42857142857 10 % 7 = 3 Константи в PHP: define( име_на_константа, стойност[, чувствителност_към_регистъра]) където: име_на_константа е низ; стойност е валиден РНР израз, но не масив или обект; чувствителност_към_регистъра е булева стойност ( true/ false ) и е незадължителна. Подразбиращата стойност е false (чувствителен). Проверка за дефинирането на константа може да стане чрез функция defined("име на константа"). Стойността на една константа се извлича чрез името и, но също така и чрез функция constant("име на константа"). Логическите константи имат стойности TRUE и FALSE. Съществуват и магически константи, чиито стойности се променят в зависимост от това къде се изпозват: например LINE връща номера на програмния ред, в който се съдържа. echo LINE ; Например echo FILE ; връща спецификацията на файла на php модула, във вида: C:\xampp\htdocs\exercice\listing1_3_2.php; РНР предоставя функцията get_defined_constants(), която връща асоциативен масив, който съдържа двойки < име, стойност > за всички декларирани константи. За доброто извеждане на масива е добре да използваме Html <pre> - таг за преформатиране: Пример 1: Разгледайте всички декларирани константи <pre> 4

print_r(get_defined_constants()); </pre> Array ( [E_ERROR] => 1 [E_RECOVERABLE_ERROR] => 4096 [E_WARNING] => 2... Пример 2: Дефиниране на потребителски константи // дефинираме константа // PASSWORD define("password","qwerty"); //дефинираме константа независима от регистъра // PI със стойност 3.14 define("pi","3.14", True); // извеждаме стойността на PASSWORD, // т.е. qwerty echo "PASSWORD =".PASSWORD; echo "<br>password ="; echo constant("password"); //echo "password=".password; /* извежда предупреждение, че password e регистър-зависима константа PASSWORD */ if (defined("password")) echo "password=".password; else echo "constant passoword is not defined!"; echo "pi=".pi; // извежда 3.14, безпроблемно // тъй като константа PI е независима от регистъра PASSWORD =qwerty PASSWORD =qwerty constant passoword is not defined! pi=3.14 Променливи в PHP създаване и използване Първо трябва да знаете, че променливите в PHP не се декларират явно, типа им зависи от присвоената стойност. Пред променливите в РНР се поставя знака $ и могат да започват с долна черта или буква, като могат да съдържат букви и цифри и знак за подчетаване. Чувствителни са към главни и малки букви. Инициализацията на променливите не е задължителна, но се счита за добра практика. Стойността на неинициализираните променливи зависи от контекста в който се използват. Така по подразбиране за променливите от логически тип подразбиращата се стойност е FALSE, за числов тип (integer, float) 0, за тип string празен низ, за масив (тип array) празен масив. Инициализиране на променливи може да се прави: 5

със стойност ( $у = $х ), с адрес ( $у = &$х ) или индиректно: съдържанието на променливата се използва като име на променлива ($x = 'Peter'; или $x = "Peter"; $$x = 'John'; echo $Peter; //ще изведе John ). При това съдържанието на променливата трябва да е символен низ, който да отговаря на изискванията за име на променлива. В този пример променливата $x получава стойност 'Peter'. Чрез инструкцията $$x = 'John'; всъщност се създава нова променлива с име, равно на съдържанието на променливата $x, тоест създава се променлива с име $Peter = 'John'. Ето защо резултатът от последната инструкция echo $Peter; дава John. Последната възможност не се среща в други езици и е едно от големите предимства на PHP. Деклариране и инициализация на променливи $a = 'Nora'; $y=$a; //инициализация със стойност $name='maria'; $z = &$name; //инициализация с адрес echo "a=",$a," y=",$y, " z=",$z; $x = 'Peter'; //индиректна инициализация - съдържанието на променливата $x се използва като име на променлива $$x = 'John'; //създава се $Peter='John' echo " x=".$x." Peter=".$Peter; //$Peter ще изведе John a=nora y=nora z=maria x=peter Peter=John Локален vs. глобален обхват на променливите - примери Независимо, че създаваните от потребителя функции в PHP са обект на разглеждане в друго упражнение, ще подчертаем, че променливи, декларирани вътре в дадена функция са с локална за функцията видимост. Достъпът до външна променлива от дадена функция може да стане и чрез масива $GLOBALS, който съдържа референция към всички променливи с глобален обхват или като се декларира променливата като global: function my_finc() { global $a; echo $a; //Извежда 1 echo $b; //локален обхват, извежда Notice: Undefined variable... } $a = 1; $b=2; echo $a; // Извежда 1 echo $b; // Извежда 2 my_finc(); Достъпът до външна променлива може да стане и чрез масива $GLOBALS, който съдържа референция към всички променливи с глобален обхват 6

$a = 1; $b = 2; function Sum() { $GLOBALS['b'] += $GLOBALS['a'];} Sum(); echo $b; //3 Управление на променливите: isset (var) - връща TRUE, ако променливата var е установена (тоест не и е зададена стойност) и не е NULL и FALSE - в противен случай. Може да се използва и за повече от една променлива - връща TRUE, ако всички променливи са установени; empty (var) връща TRUE, ако променливата няма стойност (променливата не е установена или има стойност: 0,0.0,"0",, FALSE, NULL, празен масив). unset ( var1, var2,.) унищожава се стойността на специфицираната променлива. Поведението на unset() във функция варира в зависимост от това какъв тип променлива искате да унищожите. Ако глобална променлива се унищожава с unset() вътре във функцията, само локалната променлива се разрушава, а променливата в викащата функция не губи стойността си: isset/unset/empty <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title></title> </head> <body> $my_name = 'Иван Иванов'; if (isset($my_name)) echo "Казвам се $my_name!<br>"; // унищожаваме се стойността на променливата $my_name unset($my_name); if (isset($my_name)) echo "Казвам се $my_name!<br>"; else echo "Променливата my_name няма стойност!!!<br>"; if (empty($my_name)) {echo "The variable my_name is empty<br>";} else {echo " The variable my_name is Not empty<br>";} </body> </html> Казвам се Иван Иванов! Променливата my_name няма стойност!!! The variable my_name is empty Проверка на типа на дадена променлива: gettype(),is_type(var) Mожете да проверите от какъв тип данни е една променлива като използвате вградената PHP функция gettype(). Вижте примера: 7

$my_var = 'George'; $my_var = 88.9; $my_var = true; $my_var = 8; $my_var = null; Value is string. Value is double. Value is boolean. Value is integer. Value is NULL. За проверка за типа на променлива: bool is_type(var); - is_bool() - проверява дали дадена променлива е от булев тип. Връща true, ако променливата е от тип bool. Аналогично: - is_numeric() - проверява дали дадена променлива е от числов тип - is_int() - проверява дали дадена променлива е от целочислен тип - is_float() - проверява дали дадена променлива е от тип float - is_string() - проверява дали дадена променлива е от тип string - is_null() - проверява дали дадена променлива е "празна" - is_array() - проверява дали дадена променлива е масив - is_object() - проверява дали дадена променлива е обект "Променливи на средата" или "променливи на обкръжението" (environment variables). Чрез тези променливи може да се извлече всевъзможна информация за посетителя на една страница: от кой web адрес е дошъл, какъв е IP адреса му, каква операционна система и браузър използва и т.н. Найизползваните такива променливи са следните: $_SERVER['HTTP_USER_AGENT'] - дава информация за браузъра и ОС $_SERVER['REMOTE_ADDR ] - дава информация за IP адреса $_SERVER['SERVER_SOFTWARE'] - дава информация за сървъра $_SERVER['HTTP_REFERER'] - дава информация за URL, откъдето идва user-a. Много примери може да намерите на: http://www.w3resource.com/php/super-variables/$_server.php echo "SERVER_NAME=".$_SERVER['SERVER_NAME']; echo "PHP_SELF=".$_SERVER['PHP_SELF']; echo "SERVER_ADDR=".$_SERVER['SERVER_ADDR']; echo "REMOTE_ADDR=".$_SERVER['REMOTE_ADDR']; 8

echo "Вашия web сървър е ".$_SERVER['SERVER_SOFTWARE']; echo "Вашите браузър и операционната система са ".$_SERVER['HTTP_USER_AGENT']; if(isset($_server['http_referer'])) { echo "идвате от "; echo $_SERVER['HTTP_REFERER'];} Задача: Създайте скрипт който декларира една променлива num с начална стойност 8 и дава следния изход. Value is now 8. Add 2. Value is now 10. Subtract 4. Value is now 6. Multiply by 5. Value is now 30. Divide by 3. Value is now 10. Increment value by one. Value is now 11. Decrement value by one. Value is now 10. Задача. Създайте скрипт, който използва HTML форма за въвеждане на името на потребителя, например Иван. След натискане на бутон се извежда следния отговор Здравей, Иван 9