מדריך PHP בסיסי

שפת תסריט המיועדת בעיקר לתכנות יישומי אינטרנט בצד השרת, אך יכולה לרוץ על המחשב האישי באמצעות מפרש. קוד PHP עוצב במיוחד בעבור שפת HTML ולעולם לא תשלח אל צד הלקוח.
שפה זו היא חוצה פלטפורמות, משמעות הדבר היא שניתן לעבוד איתה בשרתי לינוקס, ווינדוס ומק.

לצורך עבודה עם שפת PHP נדרש להתקין:
תוכנת שרת HTTP (לדוגמה Apache).
מסד נתונים (MySQL / SQLite).
עורך טקסט.
דפדפן אינטרנט.


מה ההבדל בין PHP ל-JS?
* PHP - היא שפת תסריטים בצד השרת (הקוד רץ בשרת ונשלח אל הדפדפן של המשתמש).
* JS - היא שפת תסריטים בצד הלקוח (הקוד רץ בדפדפן של המשתמש).

כיצד מתבצע הליך הבקשה של הנתונים:
1. דפדפן האינטרנט שולח בקשה אל השרת.
2. השרת פונה אל התוכנה שרצה עליו ומחפש את הקובץ הנדרש.
3. לאחר הרצת הקובץ הוא מייבא את קוד ה-PHP ושולף נתונים ממסד הנתונים בעת הצורך.
4. השרת מחזיר נתונים אל הדפדפן בשפת HTML.

איך להשתמש בשפת PHP?
תחילה יש ליצור קובץ בשם עם סיומת php.
בראש המסמך יש להודיע למפרש השפה שנקודה זו יש קוד PHP ויש לפרשו בהתאם.
php?>

ובסיום המסמך:

<?

ניתן להתחיל ולסיים קוד PHP בעזרת קיצור (דרך לא מומלצת):
?>
<?

כל שורה בשפת PHP חייבת להסתיים בנקודה פסיק ; כדי להודיע שהפקודה הסתיימה וניתן לעבוד לפקודה הבאה.

בשורה הבאה יש להוסיף ()phpinfo ולאחר מכן לשמור.
<?php
phpinfo();
?>

כאשר ניגש אל העמוד, הוא יציג מידע אודות הגרסא, מערכת ההפעלה ועוד.


כדי להחזיר נתונים אל המשתמש יש להשתמש בפקודה echo.
<?php
echo 'Hello World!';
?>

ניתן לבצע פעולות מתמטיות וחישובים שונים:
<?php
echo 5 + 5;
?> 

כדי לחבר 2 ערכים יחד, יש להשתמש בנקודה (.) :
<?php
echo 'Hello World! '.'My name is Fabio';
?> 

במידה ורוצים לרדת שורה, נשתמש בתג HTML שנקרא <br> באופן הבא:
<?php
echo 'Hello World!<br>'.'My name is Fabio';
?> 

הערות:
במידה ורוצים להוסיף הערה של שורה אחת יש להוסיף // לפני אותה שורה:
<?php
//this is a comment.
?> 

ניתן לבצע הערה של שורה אחת גם באמצעות סולמית # לפני אותה השורה:
<?php
#this is a comment.
?> 

ניתן לבצע הערה של מספר שורות על ידי הצבה של */ בהתחלה ולאחר מכן /* בסיום.
<?php
/*
This is a
very
long
comment.
*/
?> 


משתנים:

למשתנים בשפת PHP יש חוקיות:
* חייבים להתחיל בדולר.
* יכולים לכיל: מספרים, אותיות, קו תחתונים _ או מקפים -
* יש רגישות לאותיות גדולות וקטנות.
* המשתנים לא יכולים להכיל רווחים.
<?php
$name = 'Fabio';
?> 

ניתן להגדיר משנה ריק באופן הבא:

<?php
$name;
?> 

ניתן להצהיר על משתנים ולהדפיס אותם באופן הבא:

<?php
$name = 'Fabio ';
$middle = 'Lior ';
$last = 'Rahamim';
$full = $name.$middle.$last;
echo $full;
?> 
נסו בעצמכם!

ניתן להצהיר על משתנה קבוע שלא ניתן לשנותו באופן הבא:

<?php
$name = 'lior'
define('name', 'lior');
echo name;
?> 

פונקציות שמורות:
שימוש בפונקציה שמורה יעשה באופן הבא:
<?php
$name = 'Fabio ';
echo strtolower($name);
?> 

strtolower() - מציג מחרוזת באותיות קטנות
strtoloupper() - מציג מחרוזות באותיות גדולות
ucfirst() - מציג מחרוזות עם אות ראשונה גדולה
str_replace("old", "new", $var) - החלפת מחרוזת אחת באחרת
strstr($name, 'fabio') - חיפוש בתוך משתנה
srt_len($name) - אורך של משתנה
trim() - מוחק רווחים
strpos() - חיפוש מיקום של מחרוזת 
strchr() - חיפוש תו
rand() - מספר רנדומלי
rand(1, 5) - מספר רנדומלי מ-1 עד 5
fmod() - מודולו
round() - מעגל
ceil() - מעגל למעלה למספר שלם
floor() - מעגל למטה למספר שלם
is_bool() - בודק אם המשתנה הוא בוליאני
is_float() - בודק אם המשתנה הוא שבר
is_str() - בודק אם המשתנה הוא מחרוזת
is_null() - NULL בודק אם המשתנה הוא
gettype() - בודק מה הסוג של המשתנה
settype() - מגדיר את סוג המשתנה לסוג אחר
empty() - בודק אם המשתנה ריק
count() - מציג את כמות האינדקסים במערך
min() - מציג את האינדקס הראשון במערך
max() - מציג את האינדקס האחרון במערך
sort() - מסדר את האינדקסים מהקטן לגדול
rsort() - מסדר את האינדקסים מהגדול לקטן
implode() - הופך את המערך למחרוזת
explode() - הופך מחרוזת למערך
in_array() - בודק אם ערך כלשהו נמצא במערך ומחזיר נכון או לא


מערכים:
מערך הוא משתנה עם תאים, ניתן להגדיר מערך ריק באופן הבא:
<?php
$names = Array();
?> 

ניתן להכניס נתונים אל המערך אך יש להפרידם באמצעות פסיק:

<?php
$names = Array('lior','david','yoram','gilad');
?> 

ניתן להדפיס תא מתוך המערך באופן הבא:
(במקרה שלהלן נדפיס את השם יורם מכיוון שהספירה מתחילה מאפס).

<?php
$names = Array('lior','david','yoram','gilad');
echo $names[2];
?> 


לא ניתן להדפיס מערך שלם בעזרת echo ולכן נשתמש בפונקציית ()print_r: 
<?php
$names = Array('lior','david',Array(26,28));
print_r($names);
?> 

במידה ונרצה להדפיס את האינדקס הראשון של המערך השני:
<?php
$names = Array('lior','david',Array(26,28));
echo $names[2][0];
?> 


במידה ונרצה לשנות את הערך הראשון במערך השני:

<?php
$names = Array('lior','david',Array(26,28));
$names[2][0] = 23;
echo $names[2][0];
?> 

במידה ונרצה לקבל תוצאה ברורה יותר נשתמש בתגית <pre> באופן הבא:
<?php
echo '<pre>';
$names = Array('lior','david',Array(26,28));
print_r($names);
echo '</pre>';
?> 

מערך כמילון (מבנה נתונים) - Associative Arrayמגדיר אוסף של מפתחות וערכים. המילון מורכב ממיפוי חד-ערכי בין מפתח (Key) לערך (Value).
<?php
$names = Array(
'firstname' => 'Fabio',
'lastname' => 'rahamim',
'age' => 26
);
print_r($names);
?> 

כדי להדפיס אובייקט מתוך המערך נוכל פשוט להשתמש במפתח.
<?php
$names = Array(
'firstname' => 'Fabio',
'lastname' => 'rahamim',
'age' => 26
);
echo $names['firstname'];
?> 

תנאים ולולאותתנאי מתרחש כאשר ישנם 2 ערכים ואנו רוצים להשוות ביניהם נשתמש ב-if:
<?php
$a = 1;
$b = 2;
if($a < $b){
echo "2 is bigger";
}
?> 

במידה ורוצים להוסיף תנאי נגדי נעשה זאת באופן הבא:
<?php
$a = 1;
$b = 2;
if($a < $b){
echo "2 is bigger";
}
else {
echo "1 is bigger":
}
?> 

במידה ורוצים להוסיף תנאי נוסף נעשה זאת באופן הבא:
<?php
$a = 1;
$b = 2;
$c = 3;
if($a < $b){
echo "2 is bigger";
}
elseif($b != $c){
echo "2 is not equal to 3";
}
else {
echo "1 is bigger":
}
?> 

כאשר יש מספר ערכים שנרצה להשוות ביניהם נשתמש ב-Switch:
<?php
$age = '26';

switch($age){
case 14: echo 'Young';
case 20: echo 'Fine';
case 26: echo 'Great';
}
?> 

לולאת While
ביטוי כאשר הוא מחזיר אמת, הלולאה תמשיך ותתבצע.
<?php
$age = '1';

while($age< 10){
   $age++;
}
?> 

לולאת For
כמעט זהה ללולאת While ומורכבת משלושה חלקים בתוך הסוגריים שלה: הגדרת המשתנה הראשוני; תנאי ההמשכיות; ופעולת ההרצה. לולאת הFOR אינה צריכה את שלושת הקטעים שלה כדי לפעול. לעיתים, כאשר המשתנה כבר הוגדר מראש, אין צורך להכניס אותו לתוך הלולאה;
<?php
for($i=1;$i<=3;$i++){
    echo "Loop number $i.\n";
}
?> 

לולאת Forearch
לולאה העוברת על מערך (פעם אחת על כל ערך) ויכולה להשתמש בערך במהלך האיטרציה:
מבנה הלולאה:

foreach ($array as $value){
statement;
}
<?php
$myArray = array('one ', 'two ', 'three');
foreach ($myArray as $num) {
    echo $num;
}
?> 

מבנה הלולאה ב-Associative Array:

foreach ($array as $key => $value){
statement;
}
<?php
$names = array(
'firstname' => 'Fabio ',
'lastname' => 'rahamim ',
'age' => 26,
);

foreach ($names as $attribute => $info) {
    echo $info;
}
?> 

פונקציות:
באמצעות פונציות ניתן להגדיר קטע של קוד שניתן לקרוא לו בכל פעם במקום לכתוב את אותו קוד שוב ושוב. יש לשים לב שהמשתנים של הפונקציה "שונים" משאר המשתנים בתוכנית.
<?php
function funcName($a, $b){
 echo 'this function is ok!';
}

funcName();
?> 
דוגמה נוספת:
<?php
function hello_to($word){
 echo 'hello {$word}';
}

hello_to('Brother!');
?> 

שתף:

פאביו ליאור רחמים

סקרן, אוהב טכנולוגיה ומחשבים מזה שנים רבות וכותב ערכים קבוע בויקיפדיה.