–
۱. php چیست؟
PHP (مخفف PHP Hypertext Preprocessor) یک زبان اسکریپت نویسی همه منظوره و منبع باز است که پر کاربرد ترین زبان توسعه وب بوده و می تواند درون کدهای HTML قرار داده شود.
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
echo "Hi, I'm a PHP script!";
?>
</body>
</html>
!Hi, I’m a PHP script

یک فایل php چیست؟
-
فایلهای PHP میتوانند شامل متن، HTML، CSS، جاوا اسکریپت و کد PHP باشند.
-
کد پی اچ پی بر روی سرور اجرا می شود و نتیجه به صورت HTML ساده به مرورگر بازگردانده می شود.
-
فایل های PHP دارای پسوند “php.” هستند.
PHP چه کارهایی می تواند انجام دهد؟
- PHP می تواند محتوای صفحه پویا تولید کند.
- PHP می تواند فایل ها را روی سرور ایجاد کند، باز کند، بخواند، بنویسد، حذف کند و ببندد.
- PHP می تواند داده های فرم را جمع آوری کند.
-
PHP می تواند کوکی ها را ارسال و دریافت کند.
-
PHP می تواند داده ها را در پایگاه داده شما اضافه، حذف و اصلاح کند.
-
PHP می تواند برای کنترل دسترسی کاربر استفاده شود.
-
PHP می تواند داده ها را رمزگذاری کند.
ازمیان زبانهای برنامه نویسی چرا از PHP استفاده کنیم؟
-
PHP بر روی پلتفرم های مختلف (ویندوز، لینوکس، یونیکس، مک او اس ایکس و غیره) اجرا می شود.
-
PHP تقریباً با تمام سرورهایی که امروزه استفاده می شوند (آپاچی، IIS و غیره) سازگار است.
-
PHP از طیف گسترده ای از پایگاه های داده پشتیبانی می کند.
-
PHP رایگان و متن باز است.
- PHP از شیء گرایی پشتیبانی می کند.
-
PHP برای یادگیری آسان است و به طور موثر در سمت سرور اجرا می شود.
- PHP مستندات گسترده و انجمهای بزرگ و فعال بسیاری در وب دارد که همین امر موجب یادگیری سریع تر و پیدا کردن بهتر راه حلها می شود.
اگر هنوز PHP را نصب نکرده اید می توانید از یکی از برنامه های زیر استفاده کنید:
می توانیم بگوییم:
- PHP به اندازه ای قدرتمند است که بتواند در هسته بزرگترین سیستم مدیریت محتوا (وردپرس) قرار گیرد!
- PHP به اندازه ای عمیق است که برای راه اندازی شبکه های اجتماعی بزرگ مانند فیسبوک کافی باشد!
- همچنین به اندازه کافی آسان است که اولین زبان سمت سرور برای افراد مبتدی باشد!
–
۲. چرخه درخواست-پاسخ درPHP
کلاینت چیست؟
سرور چیست؟
HTTP چیست؟
HTTPS چیست؟
HTTP Request
هنگامی که یک سرویس گیرنده (مانند یک مرورگر وب) اطلاعاتی را بازیابی می کند، حجمی از داده ها را به عنوان یک درخواست به سرور ارسال می کند. این درخواست از سه بخش اصلی تشکیل شده است:
۱- یک خط درخواست که حاوی اطلاعات زیر است:
- فعل HTTP (که متد HTTP نیز نامیده می شود) برای ارسال یا بازیابی اطلاعات.
-
مسیر URI منبعی که در آن اطلاعات را ارسال یا بازیابی می کنیم.
-
نسخه پروتکل HTTP که نرم افزار مشتری ما از آن استفاده می کند، معمولاً HTTP/1.1
۲- سرصفحه ها که جفت های کلید/مقدار هستند که حاوی اطلاعات تکمیلی در مورد درخواست ما هستند.
۳- بدنه اختیاری: فقط زمانی که قصد ایجاد یا تغییر چیزی را داریم ، داده ها را در body ارسال می کنیم.
HTTP Response
-
نسخه پروتکل HTTP که این پاسخ از آن استفاده می کند.
-
“کد وضعیت” عددی 3 رقمی.
-
یک توضیح از معنای “کد وضعیت”.

متدهای HTTP
- GET – از متد GET برای دریافت یا دسترسی به اطلاعات یک منبع در سرور استفاده می شود. استفاده از این نوع درخواست باعث ایجاد تغییراتی در سمت سرور نمی شود. پیامهای GET از طریق url ارسال می شوند. به این معنی که متغیرها به url مورد نظر اضافه شده و ارسال می شوند.
مثال:
https://raiatec.com/مفاهیم-پایه-و-اصطلاحات-برنامه-نویسی/#d14
- POST – با استفاده از متد POST می توان درخواست ایجاد یا تغییر فایل را به سرور ارسال کرد.
برای این کار دستورات مورد نظر را در بدنه ( body ) درخواست HTTP قرار می دهیم. به عنوان مثال وقتی اطلاعات تماس خود را در یک وبسایت وارد کرده و روی دکمه SEND کلیک می کنیم این درخواست با متد POST به سرور ارسال می شود.
- PUT – از این متد برای بهروز کردن یا قرار دادن یک جایگزین برای یک منبع استفاده میشود. زمانی که کاربر URL مورد نظر خود را همراه یک منبع برای سرور ارسال میکند، اگر منبعی در URL داده شده وجود داشته باشد، منبع ارسالی کاربر جایگزین آن میشود. در غیر این صورت، سرور این منبع را به عنوان منبعی جدید ایجاد میکند و فایل ارسالی کاربر را در آن قرار میدهد.
- PATCH – برای ایجاد تغییرات در منابع سرور از متد PATCH استفاده می شود. به عنوان مثال زمانی که می خواهیم نام کاربری خود را در سیستم عوض کنیم از این متد استفاده کرده و دیگر نیازی به تغییر سایر اطلاعات نداریم.
- DELETE – همان طور که از نام این متد معلوم است از آن برای حذف یک منبع از سرور استفاده می شود.
HTTP Headers
-
عمومی: فیلدهایی هستند که برای همه درخواست ها و پاسخ ها مشترک هستند.
-
پاسخ: فیلدهایی هستند که مختص پاسخ ها هستند.
-
درخواست: فیلدهایی هستند که مختص درخواست ها هستند.
کدهای وضعیت HTTP
-
1xx پاسخ اطلاعاتی – درخواست دریافت شد، روند ادامه دارد.
-
2xx موفقیت آمیز – درخواست با موفقیت دریافت، درک و پذیرفته شد.
-
3xx تغییر مسیر – برای تکمیل درخواست باید اقدامات بیشتری انجام شود.
-
4xx خطای کلاینت – درخواست حاوی سینتکس بدی است یا قابل انجام نیست.
-
5xx خطای سرور – سرور نتوانست درخواست معتبری را انجام دهد.
چرخه درخواست/پاسخ
-
مرورگر، کلاینت خود را باز می کنید و آدرس وب مانند https://raiatec.com را تایپ می کنید و اینتر را فشار می دهید.
-
مرورگر این آدرس را می گیرد و یک درخواست HTTP ایجاد می کند. آن را به سرور واقع در https://raiatec.com ارسال می کند.
-
درخواست به ارائه دهنده خدمات اینترنت شما (ISP) داده می شود و از طریق اینترنت که عمدتاً یک سری سیم و کابل فیبر نوری است، به یک سرور ارسال می شود.
-
سرور درخواست را می خواند. می داند چگونه آن را بخواند زیرا به عنوان یک درخواست HTTP فرمت شده است.
-
سرور یک پاسخ HTTP به آن درخواست ایجاد می کند.
-
سرور پاسخ را به ISP خود می دهد تا از طریق اینترنت به رایانه شما بفرستد.
-
مرورگر شما پاسخ را می خواند. می داند چگونه آن را بخواند زیرا به عنوان یک پاسخ HTTP فرمت شده است.
-
مرورگر شما داده ها را روی دستگاه شما نمایش می دهد.
–
۳. کامنت در PHP
موارد استفاده کامنت
- توضیح دادن کد برای دیگران.
- یادآوری کدهای نوشته شده توسط خودتان.
اکثر برنامه نویسان تجربه کرده اند که یک یا دو سال بعد به کار خود بازگردند و مجبور شده اند دوباره بفهمند که چه کاری انجام داده اند. کامنت ها می توانند به شما یادآوری کنند که هنگام نوشتن کد به چه چیزی فکر می کردید.
روش های کامنت گذاری
PHP از چندین روش برای کامنت گذاری پشتیبانی می کند:
مثال ۱:
<!DOCTYPE html>
<html>
<body>
<?php
// This is a single-line comment
# This is also a single-line comment
?>
</body>
</html>
مثال ۲:
<!DOCTYPE html>
<html>
<body>
<?php
/*
This is a multiple-lines comment block
that spans over multiple
lines
*/
?>
</body>
</html>
مثال ۳:
<!DOCTYPE html>
<html>
<body>
<?php
// You can also use comments to leave out parts of a code line
// $x = 5 /* + 15 */ + 5;
echo $x;
?>
</body>
</html>
–
4. متغیرها در PHP
<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
?>
متغیرها را به عنوان محفظه هایی برای ذخیره داده ها در نظر بگیرید.
متغیرهای پی اچ پی
- یک متغیر با علامت $ شروع می شود و به دنبال آن نام متغیر می آید.
-
نام متغیر باید با یک حرف یا کاراکتر زیرخط شروع شود.
-
نام متغیر نمی تواند با یک عدد شروع شود.
-
نام متغیر فقط میتواند شامل کاراکتر ، اعداد و زیرخط باشد (A-z، 0-9 و _ )
-
نام متغیرها به حروف بزرگ و کوچک حساس هستند (age$ و AGE$ دو متغیر متفاوت هستند)
به یاد داشته باشید که نام متغیرهای PHP به حروف بزرگ و کوچک حساس هستند!
خروجی داده ها
<?php
$txt = "raiatec.com";
echo "I love $txt!";
?>

I love raiatec.com!
<?php
$txt = "raiatec.com";
echo "I love " . $txt . "!";
?>

I love raiatec.com!
آشنایی با scope یا حوزه تعریف متغیرها در php
- local scope ( سطح دسترسی محلی )
- global scope ( سطح دسترسی عمومی )
- static scope ( سطح دسترسی ایستا )
سطح دسترسی محلی یا local scope
زمانی که یک متغیر را درون یک تابع تعریف می کنیم، سطح دسترسی آن محلی و فقط درون همان تابع می باشد.
مثال:
<?php
function myTest() {
$x = 5; // local scope
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
// using x outside the function will generate an error
echo "<p>Variable x outside function is: $x</p>";
?>

Variable x inside function is: 5
Variable x outside function is:
شما می توانید متغیرهای محلی با نام یکسان در توابع مختلف داشته باشید، زیرا متغیرهای محلی فقط توسط تابعی که در آن اعلان شده اند شناسایی می شوند.
نکته: php بعد از اتمام تابع و برای آزاد کردن حافظه، متغیرهای محلی را حذف می کند.
سطح دسترسی عمومی یا global scope
<?php
$x = 5; // global scope
function myTest() {
// using x inside this function will generate an error
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>

Variable x inside function is:
Variable x outside function is: 5
سطح دسترسی ایستا یا static
<?php
function myTest() {
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>

0
1
2
–
۵. انواع داده در PHP
PHP String
<?php
$x = "Hello world!";
$y = 'Hello world!';
echo $x;
echo "<br>";
echo $y;
?>

Hello world!
Hello world!
PHP Integer
-
یک عدد صحیح باید حداقل یک رقم داشته باشد.
-
یک عدد صحیح نباید دارای اعشار باشد.
-
یک عدد صحیح می تواند مثبت یا منفی باشد.
-
اعداد صحیح را می توان به صورت اعشاری (پایه 10)، هگزادسیمال (مبنای 16)، هشتی (مبنای 8)، یا باینری (پایه 2) مشخص کرد.
<?php
$x = 5985;
var_dump($x);
?>

int(5985)
PHP Float
<?php
$x = 10.365;
var_dump($x);
?>

float(10.365)
PHP Boolean
$x = true;
$y = false;
PHP Array
<?php
$cars = array("Volvo","BMW","Toyota");
var_dump($cars);
?>

array(3) {
[0]=> string(5) "Volvo"
[1]=> string(3) "BMW"
[2]=> string(6) "Toyota"
}
PHP Object
- کلاس ها ( Classes ) و اشیاء ( Objects ) دو جنبه اصلی برنامه نویسی شی گرا هستند.
- یک کلاس یک الگو برای اشیا است و یک شیء نمونه ای از یک کلاس است.
- هنگامی که اشیاء منفرد ایجاد می شوند، تمام خصوصیات و رفتارها را از کلاس ( Class ) به ارث می برند، اما هر شیء ( Object ) مقادیر متفاوتی برای ویژگی ها ( Properties ) خواهد داشت.
- بیایید فرض کنیم کلاسی به نام Car داریم. یک ماشین میتواند ویژگیهایی مانند مدل، رنگ و غیره داشته باشد. ما میتوانیم متغیرهایی مانند model$ و color$ و غیره را برای نگهداری مقادیر این ویژگیها تعریف کنیم.
- هنگامی که اشیاء مجزا ( ولوو، بیامو، تویوتا و غیره ) ایجاد میشوند، تمام خصوصیات و رفتارها را از کلاس به ارث میبرند، اما هر شیء مقادیر متفاوتی برای ویژگیها ( Properties ) خواهد داشت.
- اگر یک تابع ()construct__ ایجاد کنید، PHP به طور خودکار این تابع را هنگامی که یک شیء از یک کلاس ایجاد می کنید، فراخوانی می کند.
<?php
class Car
{
public $color;
public $model;
public function __construct($color, $model)
{
$this->color = $color;
$this->model = $model;
}
public function message()
{
return "My car is a " . $this->color . " " . $this->model . "!";
}
}
$myCar = new Car("black", "Volvo");
echo $myCar->message();
echo "<br>";
$myCar = new Car("red", "Toyota");
echo $myCar->message();
?>

My car is a black Volvo!
My car is a red Toyota!
PHP NULL Value
- Null یک نوع داده خاص است که می تواند تنها یک مقدار داشته باشد: NULL.
-
متغیری از نوع داده NULL متغیری است که هیچ مقداری به آن اختصاص داده نشده است.
-
نکته: اگر متغیری بدون مقدار ایجاد شود، به طور خودکار مقدار NULL به آن اختصاص داده می شود.
-
همچنین میتوان متغیرها را با تنظیم مقدار NULL خالی کرد:
<?php
$x = "Hello world!";
$x = null;
var_dump($x);
?>

NULL
PHP Resource
- نوع منبع ویژه یک نوع داده واقعی نیست. این ذخیره یک مرجع به توابع و منابع خارج از PHP است.
-
مثال رایج استفاده از نوع داده منبع، فراخوانی پایگاه داده است.
-
ما در اینجا در مورد نوع منبع صحبت نمی کنیم، زیرا این یک موضوع پیشرفته است.
–
۶. عملگرهای PHP
عملگرها یا Operators برای انجام عملیات روی متغیرها و مقادیر استفاده می شوند.
-
عملگرهای حسابی
-
عملگرهای واگذاری
-
عملگرهای مقایسه ای
- عملگرهای افزایش/کاهش
- عملگرهای منطقی
- عملگرهای رشته ای
- عملگرهای آرایه ای
- عملگرهای شرطی
عملگرهای حسابی
عملگر | نام | مثال | نتیجه |
+ | جمع | x + $y$ | جمع دو عدد x$ و y$ |
– | تفریق | x – $y$ | تفریق دو عدد x$ و y$ |
* | ضرب | x * $y$ | x$ ضرب در y$ |
/ | تقسیم | x / $y$ | x$ تقسیم بر y$ |
% | باقیمانده تقسیم | x % $y$ | باقیمانده تقسیم x$ بر y$ |
** | توان | x ** $y$ | x$ به توان y$ |
مثال۱:
<?php
$x = 10;
$y = 6;
echo $x + $y;
?>

16
مثال۲:
<?php
$x = 10;
$y = 6;
echo $x % $y;
?>

4
عملگرهای انتصاب
انتصاب | همانند | توضیح |
x = y | مقدار سمت راست را به متغیر سمت چپ اختصاص می دهد. | |
x += y | x = x + y | جمع |
x -= y | x = x – y | تفریق |
x *= y | x = x * y | ضرب |
x /= y | x = x / y | تقسیم |
x %= y | x = x % y | باقیمانده تقسیم |
مثال:
<?php
$x = 20;
$x += 100;
echo $x;
?>

120
عملگرهای مقایسه
عملگر | نام | مثال | نتیجه |
== | مساوی | x == $y$ |
اگر x$ برابر با y$ باشد true برمیگرداند.
|
=== | همسان | x === $y$ |
اگر x$ برابر با y$ باشد و از یک نوع باشند، true برمیگرداند
|
!= | نامساوی | x != $y$ |
اگر x$ برابر با y$ نباشد true برمی گرداند.
|
<> | نامساوی | x <> $y$ |
اگر x$ برابر با y$ نباشد، مقدار true را برمیگرداند
|
!== | ناهمسان | x !== $y$ |
اگر x$ برابر با y$ نباشد، یا از یک نوع نباشند، مقدار true را برمیگرداند
|
> | بزرگتر | x > $y$ |
اگر x$ بزرگتر از y$ باشد true برمی گرداند.
|
< | کوچکتر | x < $y$ |
اگر x$ کمتر از y$ باشد true برمیگرداند
|
>= | بزرگتر یا مساوی | x >= $y$ |
اگر x$ بزرگتر یا مساوی y$ باشد، مقدار true را برمی گرداند
|
<= | کوچکتر یا مساوی | x <= $y$ |
اگر x$ کمتر یا مساوی y$ باشد، مقدار true را برمیگرداند
|
مثال:
<?php
$x = 100;
$y = "100";
var_dump($x === $y);
?>

bool(false)
عملگرهای افزایش – کاهش
عملگر | نام | توضیح |
x$++ | پیش افزایش |
x$ را یکی یکی افزایش می دهد، سپس x$ را برمی گرداند
|
++x$ |
پس از افزایش
|
x$ را برمیگرداند، سپس x$ را یکیک افزایش میدهد
|
x$ – – |
پیش کاهش
|
x$ را یکی کاهش می دهد، سپس x$ را برمی گرداند
|
– – x$ |
پس از کاهش
|
x$ را برمیگرداند، سپس x$ را یک واحد کاهش میدهد
|
مثال۱:
<?php
$x = 10;
echo ++$x;
?>

11
مثال۲:
<?php
$x = 10;
echo $x++;
?>

10
عملگرهای منطقی
عملگر | نام | مثال | نتیجه |
and | and | x and $y$ |
اگر هر دو x$ و y$ درست باشند درست است
|
or | or | x or $y$ |
اگر x$ یا y$ درست باشد درست است
|
xor | xor | x xor $y$ |
اگر x$ یا y$ درست باشد درست است، اما نه هر دو
|
&& | and | x && $y$ |
اگر هر دو x$ و y$ درست باشند درست است
|
|| | or | x || $y$ |
اگر x$ یا y$ درست باشد درست است
|
! | not | x ! $y$ |
اگر $x درست نباشد درست است
|
مثال۱:
<?php
$x = 100;
$y = 50;
if ($x == 100 and $y == 50) {
echo "Hello world!";
}
?>

Hello world!
مثال۲:
<?php
$x = 100;
$y = 50;
if ($x == 100 or $y == 80) {
echo "Hello world!";
}
?>

Hello world!
عملگرهای رشته ای
عملگر | نام | مثال | نتیجه |
. | الحاق | $txt2 . $txt1 |
$txt2 و $txt1 الحاق
|
.= |
تخصیص الحاق
|
$txt1 .= $txt2 |
اضافه می کند $txt1 را به $txt2
|
مثال۱:
<?php
$txt1 = "Hello";
$txt2 = " world!";
echo $txt1 . $txt2;
?>

Hello world!
مثال۲:
<?php
$txt1 = "Hello";
$txt2 = " world!";
$txt1 .= $txt2;
echo $txt1;
?>

Hello world!
عملگرهای آرایه
عملگر | نام | مثال | نتیجه |
+ | اتصال | $x + $y | اتصال x$ و y$ |
== | برابری | $x == $y |
اگر x$ و y$ جفتهای کلید/مقدار یکسانی داشته باشند، true برمیگرداند
|
=== | هویت | $x === $y |
اگر x$ و y$ دارای جفتهای کلید/مقدار یکسان در یک ترتیب و از انواع یکسان باشند، true برمیگرداند.
|
!= | نابرابری | x != $y$ |
اگر x$ برابر با y$ نباشد، مقدار true را برمیگرداند
|
<> | نابرابری | $x <> $y | اگر x$ برابر با y$ نباشد، مقدار true را برمیگرداند |
!== | بی هویتی | x !== $y$ |
اگر x$ با y$ یکسان نباشد، true برمیگرداند
|
مثال۱:
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
print_r($x + $y); // union of $x and $y
?>

Array (
[a] => red
[b] => green
[c] => blue
[d] => yellow
)
مثال۲:
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
var_dump($x == $y);
?>

bool(false)
عملگرهای تخصیص مشروط
عملگر | نام | مثال | نتیجه |
? | Ternary | $x = expr1 ? expr2 : expr3 |
Returns the value of $x.
The value of $x is expr2 if expr1 = TRUE. The value of $x is expr3 if expr1 = FALSE |
?: | Null coalescing | $x = expr1 ?? expr2 | Returns the value of $x. The value of $x is expr1 if expr1 exists, and is not NULL. If expr1 does not exist, or is NULL, the value of $x is expr2. Introduced in PHP 7 |
مثال۱:
<?php
// if empty($user) = TRUE, set $status = "anonymous"
echo $status = (empty($user)) ? "anonymous" : "logged in";
echo("<br>");
$user = "John Doe";
// if empty($user) = FALSE, set $status = "logged in"
echo $status = (empty($user)) ? "anonymous" : "logged in";
?>

anonymous
logged in
مثال۲:
<?php
// variable $user is the value of $_GET['user']
// and 'anonymous' if it does not exist
echo $user = $_GET["user"] ?? "anonymous";
echo("<br>");
// variable $color is "red" if $color does not exist or is null
echo $color = $color ?? "red";
?>

anonymous
red
منابع:
php.net
w3schools.com