Uvod u PHP

Слични документи
PDO

Uvod u računarstvo 2+2

PowerPoint Presentation

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

070-ALIP2-udzbenik.indb

Slide 1

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Uvod u računarstvo 2+2

Grananje u programu predavač: Nadežda Jakšić

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Sveucilište u Zagrebu

PowerPoint Presentation

Funkcije predavač: Nadežda Jakšić

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - 02 Elementi programskog jezika Pascal

PHP kod

Funkcije predavač: Nadežda Jakšić

Uvod u računarstvo 2+2

CLI

PROMENLJIVE, TIPOVI PROMENLJIVIH

Logičke izjave i logičke funkcije

KATUŠIĆ ANTONIO.pdf

Uvod u računarstvo 2+2

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Microsoft Word - WP_kolokvij_2_rjesenja.doc

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

PASCAL UVOD 2 II razred gimnazije

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

Slide 1

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Fortran

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language

Programiranje 1

PowerPoint Presentation

Microsoft Word - 11 Pokazivaci

PowerPoint Presentation

Računarski praktikum I - Vježbe 01 - Uvod

KDP

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft PowerPoint - C-4-1

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Slide 1

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Strukture predavač: Nadežda Jakšić

NIZOVI

COMARC/A Format

Tutoring System for Distance Learning of Java Programming Language

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Teorija skupova - blog.sake.ba

Pojačavači

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

Računarski praktikum I - Vježbe 11 - Funktori

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

Microsoft PowerPoint - JavaP9_2019

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

2015_k2_z12.dvi

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Uvod u takmičarsko programiranje

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

Microsoft Word - 1. REALNI BROJEVI- formulice

Microsoft Word - SYLLABUS -Dinamicki

RAD SA PROGRAMOM

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Državna matura iz informatike

Algoritmi SŠ P1

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word - 6. RAZRED INFORMATIKA.doc

PuTTY CERT.hr-PUBDOC

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Programiranje za UNIX Okruženje unix procesa

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

P1.2 Projektovanje asemblera

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Programski jezik C

Datum: 20

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Recuva CERT.hr-PUBDOC

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Primenjeno programiranje - vezbe GUI i baze podataka

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Programiranje 2 7. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/7

Str. 0 Programiranje Priručnik Programiranje Zagreb, godina Ovo je djelo dano na korištenje pod licencom Creative Commons Imenovanje-Nekomercija

SELECT statement basic form

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

Транскрипт:

Uvod u PHP Marijan Šuflaj FER, 2018

Sadržaj PHP Općenito Sintaksa Osnove Kontrola toka Zadatci Resursi

Općenito Naziv od PHP Hypertext Preprocessor Obično koristi ekstenziju.php Tipovi su dinamički Trenutno je aktualna verzija 7.2 Biti će spomenute promjene u odnosu na starije verzije Ozbiljno se razvija i poboljšava

PHP interpreter Portabilan Nema prevodenja u strojni kod Izvorni se kod pretvara u opcode Interpreter izvodi opcode po opcode Mogući problemi?

Poslužitelj Razne implementacije poslužitelja Mi ćemo raditi s Apache internet poslužiteljem U našem je slučaju PHP modul Apachea Postoje i druga sučelja za povezivanje s PHP-om

Interakcija

Model izvodenja Svaki zahtjev počinje s poznatim stanjem Okolina je izolirana od ostalih zahtjeva Postoje rijetki slučajevi kada to nije istina Nema nativnu podršku za višedretvenost

Tipovi podataka Osnovni integer - cijeli brojevi double - realni brojevi boolean - logička vrijednost true ili false null - predstavlja ništa Napredni string - niz znakova array - polje object - instanca razreda resource - resurs poput otvorene datoteke

Osnove sintakse Interpretira se kod nakon posebne oznake <?php Moguće je označiti kraj PHP koda pomoću?> Sve se izvan navedenih oznaka direktno prosljeduje na izlaz Kraća oznaka koja ispisuje rezultat izraza je <?=...?> <?= 1;?> ispisuje 1

Zadatak 1 Stvorite datoteku prva.php Spremite u nju sljedeći sadržaj Bok, mene je <?= "interpretirao";?> <b><?php echo "PHP";?></b>. Pokrenite skriptu na poslužitelju Postoje li tamo PHP oznake?

Komentari // Ja sam komentar u jednoj liniji # Ja sam takoder komentar u jednoj liniji /* Ja se mogu protezati kroz više linija */ /** * Komentar tipa PHPDoc */

Varijable Nije potrebno posebno deklarirati Stvara se kod prvog pridjeljivanja vrijednosti Korištenje varijable koja ne postoji vraća upozorenje i stvara ju U imenu se varijable razlikuju mala i velika slova Tip je varijable tip podatka koji je pohranjen u nju Može se promijeniti tijekom izvodenja programa Ispred imena mora biti $ Predlažemo cammel način imenovanja ($ovojeprvavarijabla, $ovojedrugavarijabla) Moguće promijeniti tip varijable ili izraza pomoću (tip) (int) ili (string) $foo = 42;

var dump() Funkcija ispisuje detalje o varijbli (varijablama) Više o funkcijama kasnije Ispisuje rekurzivno Korisno kod traženja grešaka Dodatak Xdebug uljepšava ispis Potrebno posebno instalirati

var dump() - primjer var_dump(1, 2.); var_dump(true, false, null, "PHP");

Memorijski model Varijabla predstavljena strukturom zval Velike promjene u odnosu na PHP5 16 bajtova github.com/php/php-src/.../zend types.h#l179 struct _zval_struct { zend_value value; /* i još dosta toga */ }; typedef struct _zval_struct zval;

Memorijski model - nastavak Sama vrijednost predstavljena strukturom zend value 8 bajtova github.com/php/php-src/.../zend types.h#l159 typedef union _zend_value { zend_long lval; double dval; zend_string *str; zend_array *arr; zend_object *obj; zend_resource *res; zend_reference *ref; /* i još neki */ } zend_value;

Memorijski model - nastavak // $foo = zval(type=is_long, value=5) $foo = 5; // $foo = zval(type=is_long, value=5) // $bar = zval(type=is_long, value=5) $barar = $foo; // $foo = zval(type=is_long, value=6) // $bar = zval(type=is_long, value=5) $foo = 6; // $foo = zval(type=is_undef) // $bar = zval(type=is_long, value=5) unset($foo);

Aritmetičke operacije Operandi se automatski pretvaraju u potreban tip PHP podržava izraze poput "25" * 4 Ukoliko operacija prelazi raspon integera koristi se double

Primjer //Dva cijela broja var_dump(1 + 1); var_dump(6 / 3); var_dump(6 / 4); //PHP_INT_MAX je konstanta var_dump(php_int_max); var_dump(php_int_max + 1);

Pridjeljivanje vrijednosti i reference Operator = kopira sadržaj desnog izraza u lijevu varijablu ukoliko se ne radi o objektu Copy on write - koristi se referenca do prve izmjene Posebna referenca unutar PHP interpretera Reference je na varijable moguće zatražiti ručno Reference unutar korisničkog prostora Tiho stvara referenciranu varijablu ukoliko ona ne postoji Prije verijze 7.0 bile su dosta skupa operacija u nekim slučajevima

Primjer $foo = 1; $bar = $foo; $foo = 2; var_dump($foo, $bar); $foo = 5; $bar = &$foo; $foo = 7; var_dump($foo, $bar);

Nizovi znakova - string Puno moćniji nego u C-u Mogu imati nul bajt Dohvaćanje duljine niza u konstantnom vremenu Zapis na dva načina Unutar jednostrukih navodnika Ne podržava ubacivanje varijabli Ne podržava posebne znakove Unutar dvostrukih navodnika Podržava ubacivanje varijabli Podržava posebne znakove

Primjer var_dump("ovo je string", 'Kao i ovo'); $foo = "Bok"; var_dump("$foo, kako ste?\nja sam dobro"); var_dump('$foo, kako ste?\nja sam dobro');

Nizovi znakova - nastavak Moguće pristupiti pojedinom znaku ukoliko se radi o ASCII znaku Pristup na razini bajta a ne znaka Rezultat tipa string Ne postoji poseban tip za jedan znak Spajanje stringova pomoću operatora. ili dvostrukih navodnika

Primjer $foo = "Foo"; var_dump($foo[2]); $bar = " i još bar"; var_dump($foo. $bar); //Nije bas čitljivo pa nije ni preporučljivo var_dump("$foo$bar"); //Malo čitljivija varijanta var_dump("${foo}${bar}");

Ispis echo Jezični konstrukt Prima više argumenata odvojenih zarezom Ima povratnu vrijednost print Jezični konstrukt Ispravno pozvati s ili bez zagrada Ima povratnu vrijednost printf Kao i u jeziku C

Primjer echo 1; echo "<br>"; print 2; printf("<br>%d<br>", 3); echo 4, "<br>", 5, "<br>"; var_dump(print 1);

PHP / ne-php kombiniranje Korisno za veće blokove Performantnije Lakše je čitati izvorni kod

Primjer 2 + 2 je <?php echo 2 + 2;?><br> Zgodno, zar ne?

Operatori usporedbe Labava usporedba (== i!=) Podatci se pretvaraju u isti tip Ukoliko su stringovi s obje strane numeričkog oblika, pretvaraju se u broj "10" == "1e1" vraća true Stroga usporedba (=== i!==) Provjerava tip i vrijednost Preferirajte stroge usporedbe Više informacija u službenoj dokumentaciji secure.php.net/manual/en/types.comparisons.php secure.php.net/manual/en/language.operators.comparison.php

Primjer var_dump(1 === 1); var_dump(1 == true); var_dump(1 === true); var_dump("10" == "1e1"); var_dump("10" === "1e1");

Uvjetno izvodenje // koristi se labava usporedba if ($foo) {} // suprotno od prethodne linije if (!$foo) {} // string == string if ($foo == "vjestina") {} // varijabla $foo definirana? if (isset($foo)) {} // sadržaj varijable veći od 1 if ($foo > 1) {} // logički operatori kao u C-u if ($foo && $bar) {}

Uvjetno izvodenje - nastavak Postoje else if i elseif Nije potrebno pisati { i } Često nije čitljivo Preporuka je uvijek pisati vitičaste zagrade Postoji ternarni operator $rezultat = $uvjet? $akoistina : $akolaz Dva dodatna uvjetna operatora $rezultat = $akojeizrazistina?: $inaceovaj $rezultat = $akovarijablapostoji?? $inaceovaj

Primjer var_dump('1' === '1'? 'istina' : 'laž'); var_dump(0?: 'bok'); var_dump($foo?? 'foo ne postoji');

Grananje - switch Slično kao i u C-u Koristi labavu usporedbu Podržava nizove znakova

Primjer switch ("php") { case "java" : var_dump("java"); break; case "php" : var_dump("php"); break; }

Petlja for for ($i = 0; $i < 10; $i++) { echo $i, "<br>"; }

Petlja while $i = 0; while ($i < 10) { echo $i, "<br>"; $i++; }

Petlja do while $i = 0; do { echo $i, "<br>"; $i++; } while ($i < 10);

Alternativni zapis Nudi se za if, for, while, foreach i switch O foreach-u više kasnije Umjesto vitičastih zagrada koriste se : s endif, endfor, endwhile, endforeach i endswitch respektivno secure.php.net/manual/en/control-structures.alternativesyntax.php

Primjer <?php /* Preporuka koristiti zapis s : i ispis pomoću <?= */?> <table> <?php for ($i = 1; $i <= 5; $i++) :?> <tr> <?php for ($j = 1; $j <= 5; $j++) :?> <td><?= $j * $i;?></td> <?php endfor;?> </tr> <?php endfor;?> </table>

break i continue for ($i = 0; $i < 100; $i++) { for ($j = 0; $j < 100; $j++) { if ($j % 2) { continue; } else if ($j > 10) { break 2; } echo $j, "<br>"; } }

Zadatak 2 Stvorite novu datoteku tablica-mnozenja.php Napišite program za ispis tablice množenja od jedan do deset Koristite <table border="1">

Zadatak 3 Stvorite novu datoteku ponavljanje.php Prebrojite sva ponavljanja znakova a, b i c ispred znaka z Za varijablu sadržaja Abecedanejdedozjerimaž treba ispisati 4

Resursi nikic.github.io/2015/05/05/internal-value-representation-in- PHP-7-part-1.html nikic.github.io/2015/06/19/internal-value-representation-in- PHP-7-part-2.html