PHP tahák

stránka zdaleka není dokončena

Základy syntaxe PHP

PHP se od html kódu oddělují sekvencemi <? a ?>:

<? php kód ?> html kód

Nezáleží na řádkových zlomech (to jako entry). Nezáleží na velikosti písmen (až na výjimky).

PHP příkazy se oddělují středníkem:

<?
příkaz;
příkaz; příkaz;
?>

Úseky programu se mohou uzavírat do chlupatých závorek, zejména pro účely funkcí a větvení:

<?
{příkaz; příkaz;}
?>

Příkazy se ukončují středníkem.

Poznámky

Oddělují se sekvencemi /* a */, nebo // až do konce řádku. Nevím, jak funguje mříž #.

<?
tohle není // a tohle je PHP poznámka // a tohle taky (prostě do konce řádku)
tohle není /* a tohle je PHP poznámka */ a tohle zase ne
/* tohle je PHP poznánka
tohle ještě taky */ a tohle ne
<!-- tohle není PHP poznámka -->
?>

Echo

Co je v uvozovkách, jsou řetězce, ostatní jsou výrazy

<?
echo "ahoj";
?>

vypíše Ahoj.

<?
$promenna = "karle";
echo "Ahoj ". $karle;
?>

vypíše Ahoj Karle. Tečka spojuje řetězce.

Proměnné

Co začíná dolarem, je proměnná:

$promenna, $a

Zpracování parametrů z URL

Pokud jsou v URL parametry (to je to za otazníkem), umí je PHP přebrat do proměnných. Např. URL:

index.php?a=1&b=2

předá PHP proměnné $a a $b s hodnotami 1 a 2. Takže třeba

<?
echo $a + $b;
?>

vypíše 3. (A to i v případě, že stejný požadavek přijde ne přes GET, ale přes POST).

Pokud někdo dělá v PHP4, může být předávání proměnných z adresy zakázáno v php.ini zápisem

register_globals = off;

Je to bezpečnější, ale začátečníkům doporučuji si to změnit na register_globals = on. Pokud to změnit nemůžete, k proměnným z adresy je nutno přistupovat zápisem $_GET[], např:

echo $_GET["a"] + $_GET["b"];

Zjištění, jestli je proměnná definovaná

Na to je funkce isset($proměnná). Jestliže je proměnná definovaná a má hodnotu, pak isset() vrací true.

if (isset($promenna)) ...

Operátory

Výčet není vyčerpávající

. spojování řetězců
+ sčítání
- odčítání
* násobení
/ dělení čísel (racionálních i celých)
% zbytek po dělení (modulo)
++ přičtení jedničky
-- odečtení jedničky

Operátory přiřazení

= přiřazení
.= připojení řetězce k téže proměnné
+= přičtení čísla k téže proměnné
-=
*=
/=
%=
odpovídající operace na téže proměnné
   

Logické operátory

&& a zároveň
|| nebo
podmínka?ano:ne pokud platí podmínka, je výsledek ano, jinak ne

Porovnávací operátory

== rovnost
!=
<>
nerovnost
< je menší
<= je menší nebo rovno
>= větší nebo rovno (pomůcka: je to v pořadí, jak se to čte)
   

Větvení

If - jestliže

if(podmínka) příkaz;

nebo s chlupatými závorkami:

if(podmínka)
    {příkaz;příkaz;}

nebo s else

if($a == $b)
    {příkazy;}
else
    {příkazy;}

Případně s elseif:

if(podmínka)
    {příkazy;}

Podmíněný výpis HTML kódu:

<?
if(podmínka) {
?>
výpis html kódu (klidně i složitý)
<? } // uzavření podmínky ?>

Nebo úplně jiný zápis if s dvojtečkou (já ho mám radši):

if(podmínka):
    příkaz;
    příkaz;
endif;

Případně totéž s else:

if (podmínka):
    příkaz;
    příkaz;
else:
    příkaz;
    příkaz;
endif;

Podmíněné vypisování html kódu s dvojtečkovou syntaxí:

<?
if($vypsat == 1):
?>
<b>Tento kód se vypíše, pokud proměnná <var>$vypsat</var> bude 1.</b>
<?
endif;
?>

Switch

Testuje se hodnota proměnné $a a podle toho, jakých nabývá hodnot (vypsaných za case), se provádí příkazy

switch ($a)
{
    case "hodnota1":
        příkazy;
    break;
    case "hodnota2":
    case "hodnota3":
        příkazy;
    break;
    default:
        příkazy;
}

While

Do-while

For

Vložení souboru - include

Odesílání mailů

Čtení adresářů

Čtení souborů

Zápis do souborů

Přístup k webovým zdrojům

Mysql

ODBC

Časté funkce