قواعد ساختاری و انواع متغیرها در زبان PHP

21 اردیبهشت 1397
درسنامه درس 3 از سری آموزش PHP
php-season-3-2-cover

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

قواعد ساختاری زبان PHP

زبان برنامه نویسی PHP از نظر رفتاری مشابه زبان های C و Perl‌ عمل می کند. اما به هر حال یک زبان واحد شناخته شده و باید قواعد ساختاری و سینتکس های آن رعایت شود. در ادامه به توضیح این قواعد می پردازیم:

نقطه ویرگول یا Semicolons

اگر به مثال هایی که در بخش قبلی خدمت شما عزیزان ارائه کردیم توجه داشته باشید در انتهای هر دستور PHP یک علامت نقطه ویرگول یا ;‌ قرار داده شده است.

$x += 10;

این بدین معناست که تمام خطوط و دستورهای زبان برنامه نویسی PHP باید در انتها به علامت ; ختم شوند در غیر اینطور کامپایلر از شما خطا می گیرد. بسیاری از خطاها در حین برنامه نویسی ناشی از قرار ندادن همین علامت نقطه ویرگول یا Semicolon است.

سمبل دلار $

سمبل یا نماد $ (دلار) در زبان برنامه نویسی PHP خیلی زیاد استفاده می شود و تقریبا در تمام مثال ها و بخش ها و پروژه ها این نماد بکار گرفته خواهد شد. این نماد همیشه برای تعریف یک متغیر استفاده می شود و محل قرارگیری آن قبل از تمام حروف و کاراکترهاست. در مثال زیر نمونه ای از تعریف سه نوع متغیر عددی، رشته ای و آرایه ای را ملاحظه می کنید:

<?php
  $mycounter = 1;
  $mystring = "Hello";
  $myarray = array("One", "Two", "Three");
?>

متغیرها در PHP

برای تعریف متغیرها در PHP‌ یک مثال می زنیم. فرض کنید یک جعبه کبریت در اختیار دارید که یکبار درون آن میخ کوچک، یکبار کبریت و بار دیگر مجموعه ای از کبریت و میخ قرار می دهید. در این مثال جعبه به عنوان یک منبع متغیر تعریف شده و میخ و کبریت به عنوان مقادیری که درون این منبع قرار می گیرند.

متغیرهای رشته ای

حال مثال را به دنیای برنامه نویسی بسط می دهیم. در تصویر زیر فرض کنید نام Masoud Salehi به عنوان یک مقدار درون جعبه یا متغیری به نام username قرار می گیرد.

تعریف متغییر رشته ای در زبان برنامه نویسی PHP

و برای تعریف این جملات به زبان برنامه نویسی PHP‌ از دستور زیر استفاده می کنیم:

$username = "Masoud Salehi";

علامت های " " یا دابل کوتیشن و ' ' یا سینگل کوتیشن به معنای این است که عبارت Masoud Salehi یک رشته است.

منظور از رشته عبارت متنی می باشد. بنابراین همواره باید رشته ها یا عبارت های متنی را بین دو کوتیشن یا سینگل کوتیشن قرار داد.

در جلسات بعدی تفاوت بین این دو حالت را شرح می دهیم.

حالا فرض کنید می خواهید بعد از مدتی بدانید داخل جعبه چی قرار گرفته! مثلا میخ یا کبریت؟ برای اینکار کافیه از دستور echo استفاده کنید. این دستور مقادیر درون یک متغیر را نمایش می دهد و حالت نوشتاری آن به صورت زیر است:

echo $username;

حال می توان همزمان مقدار درون یک متغیر را به متغیر دیگری انتساب داد مثلا میخواهیم بگوییم نام Masoud Salehi را علاوه بر متغیر username درون متغیر current_user ذخیره شود. برای اینکار از علامت انتساب استفاده می شود:

$current_user = $username;

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

لطفا به کدهای زیر نگاه نکنید و این کار را خودتان انجام دهید.

اگر همه چیز درست باشد باید کدها شما مشابه زیر شود:

<?php // test1.php
	$username = "Masoud Salehi";
	echo $username;
	echo "<br>";
	$current_user = $username;
	echo $current_user;
?>

اسم فایل را test1.php قرار داده ایم. سپس خروجی را در مرورگر خود با وارد کردن آدرس http://localhost/php/test1.php ملاحظه کنید. توجه داشته باشید که فولدر php در آدرس فوق را به صورت دستی داخل پوشه htdocs نرم افزار xampp ایجاد کرده ایم.

متغیرهای عددی

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

البته این تعریف به این معنی نیست که شیوه تعریف متغیرهای عددی در زبان برنامه نویسی PHP با سایر متغیرها تفاوت دارد. بلکه فقط در مفهوم اختلاف دارند. (هرچند در سایر زبان های برنامه نویسی باید حتما به نوع متغیر را به هنگام تعریف آن اشاره کنید)

حال فرض کنید که به جای عبارت Masoud Salehi می خواهیم عدد 17 را درون متغیر خود ذخیره کنیم. در این حالت دیگر از علامت های دابل کوتیشن یا سینگل کوتیشن استفاده نخواهیم کرد بلکه فقط و فقط عدد مورد نظر را به متغیر مورد نظر با علامت مساوی = نسبت می دهیم:

$count = 17;

در این حالت عدد 17 درون متغیر count‌ ذخیره شد. علاوه بر این می توانید اعداد اعشاری را درون یک متغیر ذخیره نمایید:

$count = 17.5;

آرایه ها (لیست ها)

خب حالا نوبت به این رسیده که شما از ما بپرسید آرایه یا لیست چیست؟

در ذهن خود می توانید اینطوری تصور کنید که آرایه ها مانند یک بسته ی کبریت هستند که این بسته خود شامل چندین جعبه کبریت کوچک است.

به تصویر زیر توجه کنید:

تعریف آرایه ها در PHP

یک سوال یا یک مثال ساده تر این است که فرض کنید شما با دوستان خود به پیاده روی رفته اید و میخواهید به خانه برگردید برای برگشتن آیا هر یک از شما به تنهایی سوار یک تاکسی می شود و جدا جدا بر میگردید؟
پاسخ: مسلما اینطور نیست همگی یک تاکسی سوار می شوید و همراه یکدیگر به خانه میروید. این دقیقا مفهوم آرایه است.

وقتی شما می توانید مثلا ۵ اسم را درون یک متغیر از نوع آرایه یا لیست ذخیره کنید چه لزومی دارد که ۵ متغیر تعریف کرده و برای هر کدام، یک اسم را مقداردهی کنید.

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

$team = array('Masoud', 'Morvarid', 'Ali', 'Milad', 'Maria');

یک متغیر از نوع آرایه ای به نام team‌ ایجاد شده است که شامل ۵ اسم می باشد.

خب تا اینجا تعریف یک آرایه را یاد گرفتید حالا فرض کنید میخواهیم به مقدار masoud دسترسی داشته باشیم. باید چکار کنیم؟

برای این کار کافیه کلید آن مقدار را نام ببریم و درون یک جفت براکت [ ] همراه نام متغیر قرار بدهیم.

echo $team[0]

این دستور مشخص می کند که کلید شماره صفرم (آرایه ها از مقدار عددی ۰ اندیس گذاری می شوند) که Masoud است در خروجی نمایش داده شود. همچنین برای دسترسی به مقدار Milad باید از دستور زیر استفاده کنیم:

echo $team[3]

آرایه های دو بعدی (Two-dimensional arrays)

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

جعبه های کبریت رو در نظر بگیرید که در یک ردیف کنار یکدیگر قرار گرفتند و یک آرایه را تشکیل دادند. حال فرض کنید به جای یک ردیف همان جعبه ها در سه ردیف قرار بگیرند در نتیجه علاوه بر طول و عرض یک بعد دیگری در جعبه ها به اسم ارتفاع بوجود میاد. این ارتفاع باعث میشود تا آرایه های ما به شکل آرایه های دو بعدی معرفی شوند. به تصویر زیر دقت کنید:

آرایه های دو بعدی در PHP

و در نهایت در دنیای برنامه نویسی به زبان PHP‌ آرایه های دو بعدی به صورت زیر تعریف می شوند:

<?php
	$oxo = array(array('x', ' ', 'o'),
				 array('o', 'o', 'x'),
				 array('x', 'o', ' '));
?>

برای روشن تر شدن این مفهوم در مثال فوق بازی تیک تاک را کدنویسی کرده ایم. همانطور که ملاحظه می کنید آرایه والد یعنی oxo سه آرایه دیگر درون خود ذخیره کرده است. بنابراین در این حالت ما یک آرایه ی دو بعدی با ابعاد ۳ در ۳ داریم. و اگر بخواهیم به یک المان از این آرایه دسترسی پیدا کنیم از اندیس ها یا کلیدها به صورت زیر استفاده می کنیم:

echo oxo[0][1]

در این حالت خروجی ما علامت 'o' خواهد بود. چون گفته ایم سطر صفرم و ستون اول.

اگر مفهوم آرایه برای شما خیلی سخت است اصلا نگران نباشید با مثال های عملی ای که در فصل های آینده ارائه خواهیم داد این مفهوم به سادگی در ذهن شما نقش می بندد.

قواعد نامگذاری متغیرها در PHP

یکی از مهم ترین مباحث به هنگام معرفی یک متغیر رعایت کردن قواعد نامگذاری آن است. بدون مقدمه در ادامه به توضیح این قواعد می پردازیم:

  • نام متغیر باید با یک حرف یا علامت آندرلاین ـ شروع شود
  • نام متغیر می تواند شامل کاراکترهای a تا z و A تا Z یا 0 تا 9 و ـ باشد
  • نام متغیر نباید شامل فضای خالی (space) باشد و اگر چنانچه یک متغیر شامل دو بخش بود مثلا current و name در این حالت باید از علامت _ آندرلاین برای تعریف آن استفاده کرد. یعنی بدین صورت current_name$
  • نام متغیر به بزرگ و کوچک بودن حروف حساس است. یعنی متغیر name با متغیر NAME تفاوت دارد.

دوستان عزیزم در این بخش با مفاهیم بسیار مهمی از زبان برنامه نویسی PHP‌ آشنا شدید. از اینکه همراه شما هستیم خوشحالیم. در بخش بعدی به توضیح عملگرها در این زبان می پردازیم.

جهت دریافت آموزش ویدیویی صفر تا صد PHP به همراه ساخت CMS مشابه وردپرس روی اینجا یا تصویر زیر کلیک کنید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری آموزش PHP توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما (5 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

همایون
05 خرداد 1399
واقعا از یک چیز آموزش شما خیلی خوشم میاد و دنبالش می کنم , برخلاف آموزشهای دیگران حاشیه و پرحرفی وجود نداره , متاسفانه آموزش های ایرانی با کلی مقدمه چینی و اینا وقتت رو تلف می کنه. واسه من و هر کسی که بره دنبال آموزش php قطعا اصول برنامه نویسی رو بلد هست. آموزش هاتون عالی هستند. موفق باشید

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

علی رحیمی
16 آبان 1398
ما داخل پی اچ پی کامپایلر نداریم بلکه مفسر داریم که بسیار بسیار مهمه این نکته

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

مریم
04 مهر 1398
سلام به نظرم جواب آرایه دو بعدی رو اشتباه نوشتید چون سطر صفرم، ستون اول ‘o’ نمیشه

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

ناهید
02 شهریور 1399
به نظر منم جواب آرایه دو بعدی میشه ' '

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

aliReza
09 شهریور 1398
مطمئنید جواب سوال مربوط به آرایه دوبعدی رو درست نوشتین؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

محمد
09 شهریور 1398
سلام ممنون از آموزش خوبتون توی متن چند تا غلط املایی وجود داره: بنظرم متغیر درسته ولی نوشتید متغییر

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.