FreeCoders

forum grupy FreeCoders


#1 2008-06-28 16:14:56

Razi

Administrator

Zarejestrowany: 2008-06-21
Posty: 25
Punktów :   

PHP dla znających C/C++

1. różnice
Podstawową różnicą jest to, że kod C/C++ się kompiluje, a skrypt php jest interpretowany przez serwer podczas używania.
Programy C/C++ są na podstawie funkcji, język php ma możliwość pisania funkcji, jednak nie istnieje funkcja główna. Pisze się poza funkcjami
Kod PHP zamieszcza się między <?php, a ?>. Może występować kilka razy na jednej stronie. Traktowane jest to jako całość, czyli zmienne z pierwszej części są ważne w każdej następnej.
Podobnie jak w C/C++ każdą instrukcję kończy się średnikiem.

2. Zmienne
Nie trzeba ich deklarować, ani ustalać typu. Typ jest ustalany automatycznie na podstawie wartości jaką się poda. Zmienne poprzedzamy znakiem $, po czym piszemy nazwę zmiennej bez znaków specjalnych, spacji i polskich znaków.

Kod:

$zmienna=2; //$zmienna jest typu liczbowego
$zmienna=3.14; //$zmienna jest typu zmiennoprzecinkowego
$zmienna="kurs php"; //$zmienna jest typu string (ciąg znaków)
$zmienna='kurs php'; //j.w.
$zmienna=true; //$zmienna jest typu boolean (logiczny, true, albo false)

Zmienne mogą być nadpisywane na siebie z innym typem, stara zmienna jest wymazywana.
Tablice. Też nie trzeba deklarować. po prostu pisze się $zmienna[$numer_indexu] i po sprawie. Zamiast numeru indexu można też wsadzić text np $zmienna['pierwszy'];
Dane można wsadzać pojedyńczo(jak wyżej) lub całość od razu:

Kod:

$zmienna=array("1", "2", "3");
$zmienna=array(
'pierwszy' => "1",
'drugi' => "2",
'trzeci' => "3"
);

ilość komórek, jakie posiada tablica można pobrać za pomocą funkcji count (np. count($zmienna)). Zwróci niezależnie, czy są one numerowane, czy nazywane.

3. Wypis danych
W php dane wypisuje się za pomocą echo.

Kod:

$liczba=1;
$text="kurs php";
echo "kurs php, część 1"; //zwróci tekst: kurs php, część 1
echo "$text, część $liczba"; //zwróci tekst: kurs php, część 1
echo '$text, część $liczba'; //zwróci tekst: $text, część $liczba

Jak zauważyłeś, Jeśli używasz " to wewnątrz możesz normalnie pisać nazwy zmiennych zaróno tekstowych jak i liczbowych, a one zostaną podmienione na ich wartość. Gdy używasz ', Napisze normalnie $zmienna, nie wypisze jej wartości. Kolejne przykłady:

Kod:

echo $text.', część '.$liczba; //wypisze: kurs php, część 1
echo $text.", część ".$liczba; //wypisze: kurs php, część 1

Kropka łączy stringi.
można również wykorzystywać łączenie stringów, aby wypisywać wartości, jakie zwracają funckje:

Kod:

echo 'funckja round(0.4535, 1) zwraca'.round(0.4535, 1.'.';

Jeżeli np. używasz cudzysłowia ", i chcesz aby wypisał ten znak, a nie zakończył, to użyj \". Wtedy serwer potraktuje to jako zwykły jeden znak ".

4. Warunki i pętle
Tu wszystko jest identycznie jak w C/C++.. Warunki IF, pętle while, do while, for, wszystko pisze się identycznie
Jedynie nowością jest pętla foreach, wykorzystywana do tablic, gdzie nie wiemy dokładnie ile ma komórek. Jest to również jedyny sposób do automatycznego przemieszczania się po tablicach, gdzie indexy są nazywane ciągiem znaków, a nie numerowane.

Kod:

foreach($zmienna as $liczba){
echo "$liczba | ";
}
foreach($zmienna as $slowo => $liczba){
echo "$liczba - $slowo<br>";
}

łatwo się domyślić, że pętla ta przelatuje przez wszystkie komórki pobierając wartość i wsadzając ją do podanej zmiennej za słowie kluczowym "as".
Jeżeli poruszasz się po zmiennej z indexami nazwanymi słownie, musisz po słowie "as" napisać konstrukcję $nazwa_indexu => $wartosc. Wtedy możesz użyć obu wartości.
Tablica nie będzie modyfikowana!

5. funkcje
Tu również funkcja zwraca wartość, przy czym się kończy, jednak nie trzeba deklarować typu, jaki będzie zwrócony.

Kod:

function abs($liczba){
if($liczba>0) return $liczba;
return -$liczba;
}

Powyższa funkcja zwraca wartość bezwzględną bez względu na to, czy dostanie integera, czy zmiennoprzecinkową. Może mieć problemy z tekstem:)
Funkcja może zwracać dowolny typ. Np. może być tak, że zwraca albo jakąś liczbę, albo false.

6. Co TRUE, a co FALSE
Jak powszechnie wiadomo, True norwegian black metal is TRVE, ale jak to jest w PHP?
Z typem boolean nie ma problemu. Wszystko jest jasne - true, albo false. Jednak w przypadku innych typów może być różnie.
Mały test:

Kod:

  $a=true;  if($a) echo "a is true<br>";
  $b0=0;    if($b0) echo "b0 is true<br>";
  $b1=1;    if($b1) echo "b1 is true<br>";
  $c0="";   if($c0) echo "c0 is true<br>";
  $c1="0";  if($c1) echo "c1 is true<br>";
  $c2="d";  if($c2) echo "c2 is true<br>";

zwróci:

a is trve
b1 is true
c2 is true

Czyli true są: Boolean o wartośći true, integer różny od zera, nie pusty string, którego pierwszym znakiem nie jest 0.
Reszta jest false.
I na odwrót. TRUE to na liczbie będzie 1, a FALSE = 0.

7. Przydatne podstawowe funkcje
array- zmienna przechowująca tablicę
string - zmienna przechowująca ciąg znaków, lub sam tekst zawarty w cudzysłowia
integer - liczba(również moze być zmiennoprzecinkowa)
count(array) - zwraca ilość indexów
strlen(string) - zwraca długość ciągu znaków
rand(integer, integer) - zwraca losową liczbę z danego przedziału
substr(string, integer, integer) - zwraca ciąg znaków z podanego stringa w danym przedziale (string, pierwszy, ostatni)
str_replace(string, string, string) szuka w podanym(trzecim) stringu ciągu, który jest taki sam jak ten pierwszy i zamienia go na ten drugi
isset(zmienna) - sprawdza, czy podana zmienna została już ustawiona. Zwraca true lub false.
include("plik.php") - "włącza" podany plik php do dokumentu w danym miejscu. Po prostu wkleja zawartość podanego pliku. Jeżeli są w nim skrypty php, muszą być w znacznikach <?php i ?>.

i inne przydatne:

Kod:

function last($array){
return $array[count($array)1];
}

zwraca ostatni element tablicy


wydaje ci się, że nie umiesz nic
że robisz to, w czym nie masz szans
to wszystko przecież zależy od ciebie
i ty w to musisz uwierzyć

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.dzikigon.pun.pl www.adachno.pun.pl www.blodcore.pun.pl www.kaishaku.pun.pl www.falubazogame.pun.pl