آموزش PHP قسمت اول

  • August 25, 2022 6:17 pm
  1. php چیست؟
  2. کامنت در PHP
  3. متغیرها در PHP
  4. انواع داده در PHP
  5. عملگرهای PHP

۱. 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

flesh
به جای نوشتن دستورات متعدد برای تولید خروجی HTML (همانطور که در C یا Perl مشاهده می شود)، صفحات PHP حاوی HTML با کد تعبیه شده است که کاری را انجام می دهد ( در این مورد، چاپ “!Hi, I’m a PHP script” ). کد PHP در دستورالعمل‌های پردازش شروع و پایان ویژه <?php و ?> قرار دارد که به شما امکان می‌دهد به “PHP Mode” وارد و از آن خارج شوید.
 
چیزی که PHP را از زبانهایی مانند جاوا اسکریپت سمت کلاینت متمایز می کند این است که کد بر روی سرور اجرا می شود و HTML تولید می کند سپس برای کلاینت ارسال می شود. کلاینت نتایج اجرای آن اسکریپت را دریافت می‌کند، اما نمی‌داند کد اصلی چیست. حتی می‌توانید وب سرور خود را طوری پیکربندی کنید که تمام فایل‌های HTML خود را با PHP پردازش کند، و هیچ راهی وجود ندارد که کاربران بتوانند آنچه را که در سرور قرار دارد ببینند.
 
بهترین بخش استفاده از PHP این است که برای یک تازه وارد بسیار ساده است، اما بسیاری از ویژگی های پیشرفته را برای یک برنامه نویس حرفه ای ارائه می دهد. از خواندن لیست طولانی ویژگی های PHP نترسید. می توانید در مدت زمان کوتاهی وارد شوید و در عرض چند ساعت شروع به نوشتن اسکریپت های ساده کنید.

یک فایل 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 چیست؟

HyperText Transfer Protocol HTTP ( پروتکل انتقال ابرمتن ) پروتکلی برای واکشی منابعی مانند اسناد HTML، تصاویر، فیلم ها، اسکریپت ها و غیره است.
HTTP مسئول ارتباط بین وب سرورها و کلاینت ها است. هر بار که شما از یک صفحه وب بازدید می کنید، یک فرم ارسال می کنید یا روی یک دکمه کلیک می کنید، شما دارید یک درخواست داده و پاسخ دریافت می کنید.

HTTPS چیست؟

پروتکل ایمن انتقال ابرمتن (HTTPS) توسعه یافته پروتکل انتقال ابرمتن (HTTP) است. برای برقراری ارتباط امن از طریق یک شبکه کامپیوتری استفاده می شود و به طور گسترده در اینترنت استفاده می شود. در HTTPS، پروتکل ارتباطی با استفاده از امنیت لایه حمل و نقل (TLS) یا لایه سوکت ایمن (SSL) رمزگذاری می شود.

HTTP Request

درخواست HTTP یک رشته متنی است که توسط کلاینت یا مشتری تولید شده و به سرور ارسال می شود. این درخواست حاوی مشخصات منبعی است که مشتری درخواست می کند.
 

هنگامی که یک سرویس گیرنده (مانند یک مرورگر وب) اطلاعاتی را بازیابی می کند، حجمی از داده ها را به عنوان یک درخواست به سرور ارسال می کند. این درخواست از سه بخش اصلی تشکیل شده است:

۱- یک خط درخواست که حاوی اطلاعات زیر است:

  • فعل HTTP (که متد HTTP نیز نامیده می شود) برای ارسال یا بازیابی اطلاعات.
  • مسیر URI منبعی که در آن اطلاعات را ارسال یا بازیابی می کنیم.
  • نسخه پروتکل HTTP که نرم افزار مشتری ما از آن استفاده می کند، معمولاً HTTP/1.1

۲- سرصفحه ها که جفت های کلید/مقدار هستند که حاوی اطلاعات تکمیلی در مورد درخواست ما هستند.

۳- بدنه اختیاری: فقط زمانی که قصد ایجاد یا تغییر چیزی را داریم ، داده ها را در body ارسال می کنیم.

HTTP Response

هنگامی که سرور پردازش یک درخواست را به پایان می‌رساند، پاسخ را که شامل مقادیری داده است، برای کلاینت ارسال می‌کند. این پاسخ شامل سه بخش اصلی است:
۱- یک خط وضعیت، حاوی سه بخش از اطلاعات:
  • نسخه پروتکل HTTP که این پاسخ از آن استفاده می کند.
  • “کد وضعیت” عددی 3 رقمی.
  • یک توضیح از معنای “کد وضعیت”.
۲- هدرها نیز به عنوان جفت کلید/مقدار مشابه درخواست HTTP ارسال می شوند.
۳- بدنه اختیاری: تقریباً همه پاسخ ها حاوی داده های اضافی در body هستند.

متدهای HTTP

تعامل کاربر با منبع از طریق متدهای زیر انجام می شود.
 
متدهای زیر متداول ترین متدهای HTTP هستند. این متدها به ترتیب مربوط به خواندن، ایجاد، به روز رسانی و حذف هستند. چندین روش دیگر نیز وجود دارد، اما کمتر مورد استفاده قرار می گیرند.
  • GET – از متد GET برای دریافت یا دسترسی به اطلاعات یک منبع در سرور استفاده می شود. استفاده از این نوع درخواست باعث ایجاد تغییراتی در سمت سرور نمی شود. پیامهای GET از طریق url ارسال می شوند. به این معنی که متغیرها به url مورد نظر اضافه شده و ارسال می شوند.

مثال:

https://raiatec.com/مفاهیم-پایه-و-اصطلاحات-برنامه-نویسی/#d14  
  • POST – با استفاده از متد POST می توان درخواست ایجاد یا تغییر فایل را به سرور ارسال کرد.

برای این کار دستورات مورد نظر را در بدنه ( body ) درخواست HTTP قرار می دهیم. به عنوان مثال وقتی اطلاعات تماس خود را در یک وبسایت وارد کرده و روی دکمه SEND کلیک می کنیم این درخواست با متد POST به سرور ارسال می شود.

  • PUT – از این متد برای به‌روز کردن یا قرار دادن یک جایگزین برای یک منبع استفاده می‌شود. زمانی که کاربر URL مورد نظر خود را همراه یک منبع برای سرور ارسال می‌کند، اگر منبعی در URL داده شده وجود داشته باشد، منبع ارسالی کاربر جایگزین آن می‌شود. در غیر این صورت، سرور این منبع را به عنوان منبعی جدید ایجاد می‌کند و فایل ارسالی کاربر را در آن قرار می‌دهد.
تفاوت بین POST و PUT در این است که درخواست های PUT فاقد قدرت هستند. یعنی چندین بار فراخوانی یک درخواست PUT همیشه یک نتیجه را ایجاد می کند. در مقابل، فراخوانی مکرر درخواست POST عوارض جانبی ایجاد چندین بار یک منبع را به همراه دارد.
 
  • PATCH – برای ایجاد تغییرات در منابع سرور از متد PATCH استفاده می شود. به عنوان مثال زمانی که می خواهیم نام کاربری خود را در سیستم عوض کنیم از این متد استفاده کرده و دیگر نیازی به تغییر سایر اطلاعات نداریم.
  • DELETE – همان طور که از نام این متد معلوم است از آن برای حذف یک منبع از سرور استفاده می شود.
 

HTTP Headers

هدرهای HTTP به مشتری و سرور اجازه می دهد اطلاعات اضافی را با درخواست یا پاسخ HTTP ارسال کنند.
 
فیلدهای هدر HTTP به 3 دسته گروه بندی می شوند:
  • عمومی: فیلدهایی هستند که برای همه درخواست ها و پاسخ ها مشترک هستند.
  • پاسخ: فیلدهایی هستند که مختص پاسخ ها هستند.
  • درخواست: فیلدهایی هستند که مختص درخواست ها هستند.

کدهای وضعیت HTTP

کدهای وضعیت پاسخ HTTP نشان می دهد که آیا یک درخواست HTTP خاص با موفقیت تکمیل شده است یا خیر. پاسخ ها در پنج کلاس دسته بندی می شوند:
رقم اول کد وضعیت کلاس پاسخ را مشخص می کند، در حالی که دو رقم آخر هیچ نقش طبقه بندی یا طبقه بندی ندارند. پنج کلاس توسط استاندارد تعریف شده است:
 
  • 1xx پاسخ اطلاعاتی  – درخواست دریافت شد، روند ادامه دارد.
  • 2xx موفقیت آمیز – درخواست با موفقیت دریافت، درک و پذیرفته شد.
  • 3xx تغییر مسیر  – برای تکمیل درخواست باید اقدامات بیشتری انجام شود.
  • 4xx خطای کلاینت  – درخواست حاوی سینتکس بدی است یا قابل انجام نیست.
  • 5xx خطای سرور  – سرور نتوانست درخواست معتبری را انجام دهد.

چرخه درخواست/پاسخ

جریانی که توسط رایانه ها اجرا می شود:
  1. مرورگر، کلاینت خود را باز می کنید و آدرس وب مانند https://raiatec.com را تایپ می کنید و اینتر را فشار می دهید.
  2. مرورگر این آدرس را می گیرد و یک درخواست HTTP ایجاد می کند. آن را به سرور واقع در https://raiatec.com ارسال می کند.
  3. درخواست به ارائه دهنده خدمات اینترنت شما (ISP) داده می شود و از طریق اینترنت که عمدتاً یک سری سیم و کابل فیبر نوری است، به یک سرور ارسال می شود.
  4. سرور درخواست را می خواند. می داند چگونه آن را بخواند زیرا به عنوان یک درخواست HTTP فرمت شده است.
  5. سرور یک پاسخ HTTP به آن درخواست ایجاد می کند.
  6. سرور پاسخ را به ISP خود می دهد تا از طریق اینترنت به رایانه شما بفرستد.
  7. مرورگر شما پاسخ را می خواند. می داند چگونه آن را بخواند زیرا به عنوان یک پاسخ HTTP فرمت شده است.
  8. مرورگر شما داده ها را روی دستگاه شما نمایش می دهد.

۳. کامنت در PHP

Comment عبارت است از افزودن خطوط دلخواه به کد برنامه، که از آن برای توضیح کدهای اصلی استفاده می شود.
این خطوط توسط برنامه اجرا نشده و تاثیری در خروجی ندارند.

موارد استفاده کامنت

  • توضیح دادن کد برای دیگران.
  • یادآوری کدهای نوشته شده توسط خودتان. 

اکثر برنامه نویسان تجربه کرده اند که یک یا دو سال بعد به کار خود بازگردند و مجبور شده اند دوباره بفهمند که چه کاری انجام داده اند. کامنت ها می توانند به شما یادآوری کنند که هنگام نوشتن کد به چه چیزی فکر می کردید.

روش های کامنت گذاری

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

متغیر ( variable ) به یک مکان با نام مشخص در حافظه کامپیوتر گفته می شود که داده ها در آن قابل ذخیره سازی هستند. به عبارت دیگر متغیرها “ظروفی” برای ذخیره اطلاعات هستند.
 
مثال:
<?php

  $txt = "Hello world!";
  $x = 5;
  $y = 10.5;

?>
بعد از اجرای دستورات بالا، متغیر txt$ مقدار !Hello world، متغیر x$ مقدار 5 و متغیر y$ مقدار 10.5 را ذخیره می کند.
 
توجه: هنگامی که یک مقدار متنی یا رشته متنی را به یک متغیر اختصاص می دهید، باید از علامت نقل قول را در اطراف متن استفاده نمایید.
 
نکته: بر خلاف سایر زبان های برنامه نویسی، PHP هیچ دستوری برای اعلان متغیر ندارد. و نوع متغیر زمانی تعریف می شود که برای اولین بار یک مقدار به آن اختصاص می دهید.

متغیرها را به عنوان محفظه هایی برای ذخیره داده ها در نظر بگیرید.

متغیرهای پی اچ پی

 
یک متغیر می تواند یک نام کوتاه (مانند x و y) یا یک نام توصیفی تر ( age, carname, total_volume ) داشته باشد.
 
قوانین متغیرهای PHP:

  • یک متغیر با علامت $ شروع می شود و به دنبال آن نام متغیر می آید.
  • نام متغیر باید با یک حرف یا کاراکتر زیرخط شروع شود.
  • نام متغیر نمی تواند با یک عدد شروع شود.
  • نام متغیر فقط می‌تواند شامل کاراکتر ، اعداد و زیرخط باشد (A-z، 0-9 و _ )
  • نام متغیرها به حروف بزرگ و کوچک حساس هستند (age$ و AGE$ دو متغیر متفاوت هستند)
 

به یاد داشته باشید که نام متغیرهای PHP به حروف بزرگ و کوچک حساس هستند!

خروجی داده ها

دستور echo اغلب برای خروجی داده ها به صفحه نمایش استفاده می شود.
 
 
مثال زیر نحوه خروجی متن و یک متغیر را نشان می دهد:
<?php

  $txt = "raiatec.com";
  echo "I love $txt!";

?>
flesh

I love raiatec.com!

مثال زیر همان خروجی مثال بالا را تولید می کند:
<?php

  $txt = "raiatec.com";
  echo "I love " . $txt . "!";

?>
flesh

I love raiatec.com!

آشنایی با scope یا حوزه تعریف متغیرها در php

یکی از مفاهیم مهم در مورد متغیرها ، تعریف Scope یا حوزه تعریف متغیر می باشد.
 
Scope متغیر به محدوده ای گفته می شود که متغیر درآن معنا دارد و قابل استفاده و دسترس است.
به عبارت دیگر از یک متغیر نمی توان در جایی غیر از 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>";

?>
flesh

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>";

?>
flesh

Variable x inside function is:

Variable x outside function is: 5

سطح دسترسی ایستا یا static

به طور معمول، php متغیر محلی را پس از اتمام تابع حذف می کند. با این حال، گاهی اوقات لازم داریم که مقدار متغیر پس از اتمام تابع حذف نشود و مقدار خودش را حفظ کند.
 
برای انجام این کار، زمانی که متغیر را برای اولین بار اعلام می کنید، از کلمه کلیدی Static استفاده کنید:
 
مثال:
 
<?php

  function myTest() {
    static $x = 0;
    echo $x;
    $x++;
  }

  myTest();
  myTest();
  myTest();
  
?>
flesh

0
1
2

سپس، هر بار که تابع فراخوانی شود، آن متغیر همچنان اطلاعاتی را که از آخرین باری که تابع فراخوانی شده بود، خواهد داشت.
 
توجه: متغیر همچنان برای تابع Local است.

۵. انواع داده در PHP

متغیرها می‌توانند داده‌های مختلف را ذخیره کنند و انواع داده‌های مختلف می‌توانند کارهای متفاوتی انجام دهند.
PHP از انواع داده های زیر پشتیبانی می کند:

PHP String

یک String یا رشته دنباله ای از کاراکترها است، مانند “!Hello world”.
یک رشته می تواند هر متنی در داخل علامت نقل قول باشد. می توانید از نقل قول های تک یا دوگانه استفاده کنید:
 
مثال:
<?php

  $x = "Hello world!";
  $y = 'Hello world!';

  echo $x;
  echo "<br>";
  echo $y;

?>
flesh

Hello world!
Hello world!

PHP Integer

یک نوع داده عدد Integer یک عدد غیر اعشاری بین 2,147,483,648- و 2,147,483,647 است.
قوانین اعداد صحیح یا Integer :
  • یک عدد صحیح باید حداقل یک رقم داشته باشد.
  • یک عدد صحیح نباید دارای اعشار باشد.
  • یک عدد صحیح می تواند مثبت یا منفی باشد.
  • اعداد صحیح را می توان به صورت اعشاری (پایه 10)، هگزادسیمال (مبنای 16)، هشتی (مبنای 8)، یا باینری (پایه 2) مشخص کرد.
در مثال زیر x$ یک عدد صحیح است. تابع ()var_dump نوع و مقدار داده را برمی گرداند:
<?php

  $x = 5985;
  var_dump($x);

?>
flesh

int(5985)

PHP Float

Float (عدد ممیز شناور) عددی با نقطه اعشار یا عددی به صورت نمایی است.
در مثال زیر x$ یک Float است. تابع ()var_dump نوع و مقدار داده را برمی گرداند:
<?php

  $x = 10.365;
  var_dump($x);

?>
flesh

float(10.365)

PHP Boolean

یک Boolean دو حالت ممکن را نشان می دهد: TRUE یا FALSE.
$x = true;
$y = false;

PHP Array

یک Array یا آرایه چندین مقدار را در یک متغیر ذخیره می کند.
در مثال زیر cars$ یک آرایه است. تابع  ()var_dump نوع و مقدار داده را برمی گرداند:
<?php

$cars = array("Volvo","BMW","Toyota");
var_dump($cars);

?>
flesh
   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();

?>
flesh

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);

?>
flesh

NULL

PHP Resource

  • نوع منبع ویژه یک نوع داده واقعی نیست. این ذخیره یک مرجع به توابع و منابع خارج از PHP است.
  • مثال رایج استفاده از نوع داده منبع، فراخوانی پایگاه داده است.
  • ما در اینجا در مورد نوع منبع صحبت نمی کنیم، زیرا این یک موضوع پیشرفته است.

۶. عملگرهای PHP

عملگرها یا Operators برای انجام عملیات روی متغیرها و مقادیر استفاده می شوند.

 

PHP عملگرها را به گروه های زیر تقسیم می کند:
  • عملگرهای حسابی
  • عملگرهای واگذاری
  • عملگرهای مقایسه ای 
  • عملگرهای افزایش/کاهش
  • عملگرهای منطقی
  • عملگرهای رشته ای
  • عملگرهای آرایه ای
  • عملگرهای شرطی

عملگرهای حسابی

عملگرهای محاسباتی PHP برای مقادیر عددی برای انجام عملیات حسابی رایج مانند جمع، تفریق، ضرب و غیره استفاده می‌شوند.
عملگر نام مثال نتیجه
+ جمع 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;

?>
flesh

16

مثال۲:

<?php

  $x = 10;  
  $y = 6;

  echo $x % $y;

?>
flesh

4

عملگرهای انتصاب

عملگرهای انتساب PHP برای تخصیص یک مقدار به یک متغیر استفاده می شوند.
 
عملگر اصلی انتساب در PHP “=” است و مقدار سمت راست را به متغیر سمت چپ اختصاص می دهد.

انتصاب همانند توضیح
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;

?>
flesh

120

عملگرهای مقایسه

عملگرهای مقایسه PHP برای مقایسه دو مقدار (عدد یا رشته) استفاده می شوند:
عملگر نام مثال نتیجه
== مساوی 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);

?>
flesh

bool(false)

عملگرهای افزایش – کاهش

عملگرهای افزایشی PHP برای افزایش مقدار یک متغیر استفاده می شوند.
 
عملگرهای کاهش PHP برای کاهش مقدار یک متغیر استفاده می شوند.
عملگر نام توضیح
x$++ پیش افزایش
x$ را یکی یکی افزایش می دهد، سپس x$ را برمی گرداند
++x$
پس از افزایش
x$ را برمی‌گرداند، سپس x$ را یک‌یک افزایش می‌دهد
x$ – –
پیش کاهش
x$ را یکی کاهش می دهد، سپس x$ را برمی گرداند
– – x$
پس از کاهش
x$ را برمی‌گرداند، سپس x$ را یک واحد کاهش می‌دهد

مثال۱:

<?php

  $x = 10;  
  echo ++$x;

?> 
flesh

11

مثال۲:

<?php

  $x = 10;  
  echo $x++;

?>
flesh

10

عملگرهای منطقی

 عملگرهای منطقی PHP برای ترکیب عبارات شرطی استفاده می شوند.
عملگر نام مثال نتیجه
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!";
  }

?> 
flesh

Hello world!

مثال۲:

<?php

  $x = 100;  
  $y = 50;

  if ($x == 100 or $y == 80) {
      echo "Hello world!";
  }

?>
flesh

Hello world!

عملگرهای رشته ای

 PHP دو عملگر دارد که مخصوص رشته ها طراحی شده اند.
عملگر نام مثال نتیجه
. الحاق $txt2 . $txt1
$txt2 و $txt1 الحاق 
.=
تخصیص الحاق
$txt1 .= $txt2
اضافه می کند $txt1 را به $txt2 

مثال۱:

<?php

  $txt1 = "Hello";
  $txt2 = " world!";
  echo $txt1 . $txt2;

?> 
flesh

Hello world!

مثال۲:

<?php

  $txt1 = "Hello";
  $txt2 = " world!";
  $txt1 .= $txt2;
  echo $txt1;

?> 
flesh

Hello world!

عملگرهای آرایه

عملگرهای آرایه PHP برای مقایسه آرایه ها استفاده می شوند.
عملگر نام مثال نتیجه
+ اتصال $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

?>
flesh
   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);

?>
flesh

bool(false)

عملگرهای تخصیص مشروط

عملگرهای انتساب شرطی PHP برای تعیین مقدار بسته به شرایط استفاده می شوند:
عملگر نام مثال نتیجه
? 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";

?>  
flesh

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";

  ?>
flesh

anonymous
red

منابع:

php.net

w3schools.com