rzutowanie (wymuaszanie zmiany typu danej zmiennej)
$liczbaRzeczywista = (real) $liczba całkowita;
Operatory
*arytmetyczne (+.-.*,/,%(modulo)) %a=$b+3;
*przypisania(=,+=.-=,*=) $a=$a+1, a t osamo, co $a += 1
*porównania(==,===,!=,!==,<,>,<=,>=) sprawdzanie, czy coś jest równe if($a==3),a != to różności (chyba =! tak samo), === identyczność, !== odwrotność identyczności oprócz porównywania wartości porównuje typy danych
*(post i pre)inkrementacji i dekrementacji ($a+=,++$a,<i z minusami to samo>)
$a=1
$b=$a++; //$b=1; $a=2 (kolejność działań) to to samo co $b=$a; $a=$a+1;
$c=++$b; //$b=2; $c=2
*logiczne(&&-and,II-or,!-not)
*łańcuchowe(.,.=)konkatenacja i konkatenacja z dopisaniem (łączenie i dopisywanie łańcuchów) zawsze tekstowy
$imie = "Jan"
$naz = "Kowalski"
@u = $imię." ".$naz // " " to spacja
$u .= "x" //na końcu dopisujemy x
Róznica między pojedyńczym i podwójnym cudzysłowiem
$a= 'Ala';
$b = '$a ma kota n' ; tekst po prostu się wyświetli (??$b =?? '$a ma kota n'), to wszystko, bez interpretowania
$b = "$a ma kota n" ; => Wyświetli się "Ala ma Kota" i przejdziemy do nowego wiersza
/n nowa linia
/r powrót karetki (CR)
/t tabulacja
\ lewy ukosnik
"cudzysłów
$znak dolara
instrukcje:
echo $a;
print ($a); nawiasy mogą być, ale nie muszą
Tablice: indeksowane i asocjacyjne ... wielowymiarowe.
tworzenei tablicy przy uzyciu funkcji list() lub array ()
$t[0]=1;// t to nazwa tablicy
$t[1]="abc";
$t[2][0]=100;
$t[2][1]=0;
$t=array(1."abc",array(100,0);
<dopisywanie> $t[]="xyz"
Stałe obiekty w PHP
<? define (Hello, "witam!")
echo Hello; //wyświetli: Witam!
?>
Zasię zmiennych
-zmienne globalne mają taki sam zasięg, rozciąga się on również na pliki dołączane
-wewnątrz funkcji definiowanych przez użytkownika zmienne mają zasięg lokaalny
-zmienne globalne muszą być deklarowane jako globalne, alby mogły być wykorzystywane wewnątrz funkcji
-zmienne statyczne, które są deklarowane wew. funkcji, zapewniają utrzymywanie swojej wartości pomiędzy kolejnymi
wywoływaniami funkcji
np.$a=10;
function dodaj () {
echo $a+2;
}
dodaj ();
jedno "a" jest zupełnie czym innym, niż "a" wewnątrz funkcji, więc nie zwróci 12, a 2. Przykład zmiennej lokalnej.
$a=10;
function dodaj () {
global $a;
echo $a+2;
}
dodaj ();
Dołączanie zewn. plików do skryptu.
<?php
$aGlobbal = "To jest test";
/*
Dołączam inny plik z kodem PHP. Powyższa zmiana $aGloball, będzie dostępna w dołączanym pliku.
*/
include( "example10_inc.php");
function DoPrint( )
{
/*Poniższa instrukcja wydrukuje tylko <br> ponieważ zmienna $aGloball wewnątrz funkcji jest poza zasięgiem.
*/
print "a$aGloball<br>";
}
DoPrint();
$a=10;
function dodaj () {
static $a; lub static $a=1 //nadaje wartośc zm.statyczn. inaczej 0.
echo ++$a;
}
include ("plik.php");
require ("plik.php"); // jak nie ma ppliku zatrzymuje skrypt i wyrzuca kod błedu
Jeszcze raz o operatorach
-operator trójskładnikowy ?:
$wart = (wyrażenie1) ? (wyrażenie2) : (wyrażenie3)
zmienna $wart ma wartość wyrażenie2, jeżeli wyrażenie1 ma wartość true, w przeciwnym wypadku $wart równa się
wyrażenie3.
np. echo @wiek>50 ? "stary" : "młody";
operator wykonania polecenia zewnątrznego oznaczany przez znak ' (klawisz z ~)
wyrażenie otoczone znakami ` jest wykonywane na serwerze, a zwracana wartość przekazywana do zmiennej
-operator kontroli błędów @
operator umieszczony przed wyrażeniem blokuje generowanie komunikatów błędów powodowanych tym wyrażeniem błędy
zatrzymane operatorem @ są pamiętane w zmiennej globalnej
$php_errormsg
np. $x=@(1/0); // instrukcja nie zostanie wykonana.
else,elseif,if
Instrukcje do kierowania przepływem
while, do..while
<?php
print ( "liczenie w górę przy użyciu <b>while</b>.<br> );
$nindex = 0;
// wypisuje liczby od 0 do 9
while ( $nIndex<br>' );
$nIndex++;
}
print ( "liczenie w dół przy u życiu <b>do..while<br>.<br> );
// wypisuje liczby od 10 do 1
do
{print( "$nIndex<br>" );
$nIndex--;
} while ( $nIndex >0 );
?>
Przepływ sterowania
for
for (wyr1; wyr2; wyr3;) instrukcja
(wyr1) obliczane raz na początku, (wyr2) obliczne na początku każdego przebiegu, a jeżeli jest "True" pętla się
wykonuje, inaczej przerwanie. (wyr3) wykonywane jest na koniec każdej iteracji. Każde z tych wyrażeń może być puste
Funkcje
-nie muszą być deklarowane przed ich użyciem w kodzie PHP4
-dowolny kod w ciele funkcji, wywołania innych funkcji również tworzenie funkcji rekurencyjnych
-nie wolno przeciążać funkcji, nie ma mechanizmu lub redefiniowanie wrześniej zdefiniowanych funkcji
-domyślne argumenty przekazywane przez wartość, przekazanie argumentu przez referencję, ze znakiem &
funktion drukuj(&$co) {
echo $co;
}
$a= "ala ma kota"; $co=" ";
drukuj ( $a );
-argumenty domyślne umieszczone po wszystkich argumentach obowiązkowych
-zmienna lista argumentów, dostępne są funkcje do pobrania argumentów:
func_num_args(), func_get_arg(), func_get_args <chyba()>
Operacje na tablicach
sortowanie:
*sort - sortowanie afanumeryczne, rosnąco
$produkty = array("Opony", "Olej", "świece");
sort($produkty);
+porządek: Olej, Opony, Świece
+Wielkość liter - Tak: pierw duże, później małe
*asort - sortowanie afanumeryczne rosnąco wg wartości
+porządek według wartości elementu (np opony=>400 Olej<200) to cenami
*ksort
+jak wyżej, tylko sortuje wg Opony, Olej <wyrazów>
wędrówki po tablicy
wyświetlanie elementu i przesuwanie wskaźnika
reset - pierwszy element, wskaźnik na początku
each -bieżący element, przesuwa wskaźnik do przedu
next- prezsuwa wskaźnik do przedu, bieżący element
current - bieżący element, wskaźnik bez zmian
prev- przesuw do tyły, bieżacy element
end- ostatni element, wskaźnik na końcu
liczenie elementów tablicy
count - liczba elementów w zmiennej, tablicy
sizeof - liczba elementów w tablicy
array_count_values zwróci unikalne elementy tablicy
$a = "Ala ma kota"
$t = explode ( " ";$a);
otrzymamy tablice stworzoną z 3 elementów: "Ala", "ma", "kota"
Konwersja tablicy na zmienne skalarne
<nie omawiane>
Operacje na ciągach znaków
trim - przycięcie "białych znaków: na początku i końcu wyrazu
ltrim - tylko z poczatku
rtrim - tylko na końcu
nl2br - \n-><br> znaczniki końca wiersza na znaczniki htmla...
print - jak echo, zwraca boolean
printf - jak w C, formatowanie
printf("Wartoś zanówienia wynisi %.2f", $wart); -> zaokgrąglamy do 2 miejsc po przecinku
strtoupper- na DUZE ZNAKI
strtolower- na małe znaki
ucfirst- Zmiana jak w zdaniu
ucwords- Każdy Wyraz w Zdaniu
jak eksplode, to implode, tyle, ze odwrotnie
substr - dostęp do podciągu między początek a koniec (łańcuch tekstowy, index pierwszego znaku, i długość) 2>12
strcmp - porównanie ciągów
strcasecmp - porównanie ciągów, nie jest ważna wielkość liter
strnatcmp - porównywanie ciągów "naturalnie" np. 2<12
strstr, strchr - odnajdywanie ciągu w ciągu
stristr- tak samo, bez wielkości liter
strrchr
strpos -odnajdywanie ciągu w ciągu, ale tylko pozycję (liczbę będącą indexksem, od kiedy się zaczyna)
strlen -sprawdzanie długości ciągu
str_replace - zmiana wszystkich elementów na nowe
substr_replace - zmiana konkretbegi podciągu na inny
require - załadowanie pliku do skryptu php
inc
156.17.80.146:8080
$p=fopen("plik.txt", "r") ; /w - skasowanie zawartosci /r - odczytywanie; a - dopisywanie nowej tresci, r+, w+, a+ - odczyt i zapis, otwieranie i kasowanie zawrtości z odczytem i zapisem, dopisywać i odczytywać.
$rozmiar = filesize ($p);
$znak = fgetc($p); //znak
$linia = fgets($p); //linia
$dane = fread($p,$ile); //ileś kolejnych znaków odczytywanie
fwrite ($p, $tekst); //zapis do pliku
fclose($p); //zamyka otwarty plik
flock($p,1); // blokowanie dostępu do pliku 1- blokowanie: tylko do odczytu jest 2- blokowanie: tylko do zapisu jest 3- odblokowanie całkowite.
Nie moesz pisa nowych tematw Nie moesz odpowiada w tematach Nie moesz zmienia swoich postw Nie moesz usuwa swoich postw Nie moesz gosowa w ankietach Nie moesz zacza plikw na tym forum Moesz ciga zaczniki na tym forum