مقدمه
درود٬ به دوره آموزشی مقدماتی پی اچ پی (PHP) خوش آمدید!
در این دوره تلاش خواهیم کرد که برنامه نویسی را به زبانی ساده و همراه با لذت برای شما ارائه کنیم. شاید بعضی ها باشند که در ذهن یک غول از برنامه نویسی ساخته باشند اما اجازه بدهید که در اینجا اعلام کنیم این پیش فرض کاملا اشتباه است!
ساخت و تولید یک سیستم توسط زبان برنامه نویسی به هیچ عنوان سخت و صرفا برای آدم های تیزهوش نیست. هر کسی که اراده به یادگیری کند می تواد در مدت زمان مناسبی این کار شیرین و دوست داشتنی را فرا گرفته و به تولید سیستم های پویا اقدام نماید. پس ابتدایی ترین نوید ما به شما این خواهد بود که این کار را با هم و همراه لذت یاد خواهیم گرفت.
اگر با این دوره همراه شوید٬ ما تلاش خواهیم کرد که همراه هم قدم به قدم اصول ابتدایی پی اچ پی را یاد گرفته و پیاده کنیم. این قول را به شما می دهیم که پس از اتمام این دوره بدون اینکه خودتان متوجه شوید تبدیل به یک برنامه نویس خوب شوید. صد البته که این به تلاش و مهمتر از آن علاقه شما بستگی دارد.
در این دوره مفاهیم به صورت کاملا ساده و روشن، آهسته آهسته و همراه با پیاده سازی و گرفتن خروجی از آنها برای شما آموزش داده خواهند شد. تنها خواهش ما این است که هیچگاه بدون اینکه درسی را کاملا یاد نگرفته اید به سراغ مبحث بعدی نروید.
خیلی خب اگر آماده هستید به سراغ درس شیرین برنامه نویسی با زبان پی اچ پی برویم. امیدواریم که شما هم مثل ما مشتاق و آماده برای یک دوره همراه با لذت باشید.
تارنمای پویا چیست؟ (تارنما= وب سایت)
در گذشته اگر قرار بود یک شرکت٬ سازمان و یا هر کسی که اقدام به راه اندازی سیستم تارنما بر روی شبکه داخلی و یا اینترنت نماید٬ باید این کار را توسط زبان و یا دستورهای اچ تی ام ال (HTML) انجام می داد.
خب در آن زمان این کار انجام می شد اما مشکل این بود که برای هر صفحه ای باید تمام کدها دوباره نوشته می شد. مثلا اگر یک شرکت که دارای ۲۰۰ نوع محصول تولیدی بود، قرار بود تارنمایی راه اندازی کند، باید برای هر محصول یک برگه را اختصاص می داد و این یعنی ۲۰۰ بار کدنویسی یا حداقل رونویسی! تازه مشکل بزرگ تر بروزرسانی این صفحات بود که این کار باید توسط افرادی که با زبان برنامه نویسی آشنا بودند انجام می شد.
با پیدایش زبان هایی مانند پی اچ پی این قابلیت به تولید سیستم اضافه شد که از دوباره سازی این صفحات و کدها جلوگیری می کرد. حال همین شرکت خودمان با ۲۰۰ محصول کافی است که یک صفحه به عنوان الگو داشته باشد و تمام محصول ها را در همان یک برگه به نمایش بگذارد. جالب شد نه!
البته این کار به کمک ابزاری دیگر به نام پایگاه داده ها انجام می شود. پایگاه داده ها جایی است که اطلاعات شما به طور طبقه بندی شده در آن ثبت می شود و هر لحظه می توانید به آنها دسترسی داشته باشید. نگران این مورد هم نباشید چون در طول دوره آن را هم با لذت تمام یاد خواهیم گرفت.
خب در یک تعریف کوتاه باید بگوییم که سیستم پویا سیستمی است که به کمک پایگاه داده ها و توسط یک الگو برای یک صفحه می تواند کار ۱۰۰ یا ۲۰۰ و یا حتی بیشتر را انجام دهد.
یک سیستم پویا این قابلیت را دارد که با توجه به پارامترهای متفاوت، رفتار متفاوت از خود نشان دهد. اگر دقت کنید در سیستم هایی مانند تارنماهای خبری در طول یک روز بارها محتوای جدید به تارنما اضافه می شود. این دقیقا چیزی است که با کمک تارنمای پویا انجام می شود؛ یعنی یک الگو برای مثلا صفحه ابتدایی تارنما و داده هایی که به کمک پایگاه داده ها بر روی صفحه نقش می بندند.
از همه جالب تر این است که هر لحظه بدون هیچ نیازی به گسترش سیستم از نظر برنامه نویسی می توانید داده جدیدی را منتشر کنید. اگر کاملا متوجه موضوع نشدید اصلا ایرادی ندارد؛ این چیزی است که شما در طول دوره خود به خود فرا خواهید گرفت.
مفهوم سرور و کاربر CLIENT/SERVER
قبل از آشنایی با زبان برنامه نویسی لازم دانستیم که مفهوم سرور و کاربر را برای شما به طور خلاصه شرح دهیم.
به طور ساده این مفهوم وقتی پیدا می شود که در یک تعامل بین دو طرف یکی سرویس بدهد و دیگری سرویس بگیرد٬ همین :)
مثلا وقتی شما به فروشگاه محله خود برای خرید می روید، در این تعامل شما کسی هستید که تقاضای سرویس دارید یعنی کاربر٬ و یا همان مشتری خودمان و در آن طرف قضیه فروشنده٬ سرویس دهنده می شود. در دنیای رایانه به سیستمی که سرویس ارائه می کند سرور (Server) و به کسی که سرویس می گیرد کاربر (Client) می گویند. سرور همان رایانه خودمان است با این تفاوت که از قطعاتی قوی تر و سریع تر تشکیل شده است.
اما دلیل بیان این مطلب این است که در دنیای برنامه نویسی زبان های متفاوتی وجود دارند که ما براساس اینکه این زبان در طرف سرور کارایی دارد یا طرف کاربر، به آنها سمت کاربر و یا سمت سرور می گوییم. نمونه آن را بارها دیده اید؛ مثلا وقتی مرورگر خود را باز می کنید مرورگر شما ابتدا می لرزد و یا کلمه ای دنبال اشاره گر شما می دود. این دست کارها فقط در سمت کاربر انجام می گیرد و نیازی نیست که سرور را مشغول این کارها کنیم. از طرفی دیگر کارهایی مانند گرفتن داده ها و نمایش و تعامل با کاربر، کارهایی هستند که در سمت سرور انجام می شوند.
نکته مهم این است که زبان های سمت کاربر مانند HTML و JavaScript، وقتی در داخل رایانه کاربر فراخوانده شوند بدون نیاز سرور عملیاتی که در آنها نوشته شده را پیاده می کنند. اما زبان های سمت سرور باید در سرور نوشته و گذاشته شوند تا قابل اجرا باشند.
به طور خلاصه باید گفت که برای استفاده از زبان های سمت سرور نیاز به سرور و یا فراهم کردن این بستر داریم. مثلا اگر بخواهیم در رایانه های خانگی از زبان های سمت سرور استفاده کنیم باید بستر سرور را فراهم کنیم. این کار با بسته هایی مانند WampServer فراهم و به سادگی قابل پیاده سازی است.
WampServer برنامه ای است که بستر سرور را برای شما آماده کرده و به شما اجازه می دهد که مانند یک سرور از رایانه خود استفاده کنید.
آشنایی با زبان برنامه نویسی پی اچ پی
پی اچ پی زبانی است برای تولید سیستم های پویا که در بستر اینترنت و که در داخل کدهای HTML کار می کنند. زبان پی اچ پی یک زبان سمت سرور است. بله، حالا خوب متوجه می شوید که منظورمان چیست.
منظور از این گفته این است که ما باید برای استفاده از این زبان در رایانه خانگی خود از بستر سرور به کمک WampServer استفاده کنیم. این زبان همیشه در حال بروزرسانی است، یعنی بوجود آورنده های پی اچ پی بعد از گذشت سال ها هنوز در فکر هر چه بهتر کردن این زبان هستند. این نکته یک عامل شده است که استفاده کننده های بسیاری به سمت پی اچ پی کشیده شده اند.
برای تولید سیستم های پویا، پی اچ پی یکی از بهترین زبان ها است چرا که سیستم ها با پی اچ پی معمولا سریع تر ٬ بهتر و راحت تر کار می کنند. از همه مهمتر ارتباط خوب پی اچ پی با پایگاه داده ها است. این زبان قابلیت ارتباط با انواع پایگاه داده ها را با کیفیت بالایی دارد.
اجازه بدهید کمی بیشتر در مورد سمت سرور بودن پی اچ پی توضیح دهیم. روال کار بدین ترتیب است که وقتی شما کدی را در تارنمایی با پی اچ پی می نویسید، این کد برای عمل به سرور متوسل می شود. یعنی کاربری که از تارنمای شما دیدن می کند درخواستی برای این دیدار می فرستد. بعد سرور درخواست را به پی اچ پی می دهد و پی اچ پی بر طبق کد نوشته شده عمل کرده و پاسخ می دهد؛ در این هنگام سرور پاسخ را برای کاربر می فرستد. فکر می کنیم که عکس زیر گویای توضیحاتی که گفتیم باشد.

منبع عکس: کتاب PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide نوشته Larry Ullman
در اینجا این درس را به پایان می بریم. در درس آینده کار را با معرفی سینتکس (Syntax) یا نحوه برنامه نویسی با پی اچ پی ادامه می دهیم.
فراموش نکنید که پی اچ پی زبان سمت سرور است؛ پس تا درس بعدی باید مقدمات لازم را فراهم کنید که همان نصب WampServer بر روی رایانه تان است. برای دریافت این نرم افزار به این آدرس مراجعه کنید.
به قسمت پایین صفحه رفته و برنامه مورد نظر خود را با توجه به نسخه سیستم عامل تان در بخش Downloads دریافت کنید. تا درس بعد بدرود :)
درس اول- سینتکس و متغیرها
نحوه کار زبان پی اچ پی
پی اچ پی زبانی است که در داخل اچ تی ام ال قرار داده می شود. برای آشنایی با نحوه کار این زبان ما این مهم را قدم به قدم با کدنویسی ساده انجام می دهیم. ابتدایی ترین چیز در استفاده کردن از این زبان قرار دادن کدهای خود در داخل برچسب (تگ یا Tag) زیر است:
محل قرار گرفتن کد
?>
هر کدی که در میان این دو برچسب قرار دهید به عنوان کد پی اچ پی قلمداد می شود. نکته بعدی پسوند فایل شما است که در زبان کدنویسی پی اچ پی بهتر آن است که از پسوند .php استفاده کنید.
به طور مثال نام index.php را برای ابتدایی ترین فایل خود برگزینید. البته برای نمایش یک برگه دارای کد پی اچ پی ما کماکان باید از برچسب های اچ تی ام ال هم استفاده کنیم. به مثال زیر توجه کنید:

همانطور که می بینید برچسب پی اچ پی در داخل برچسب های اچ تی ام ال قرار گرفته است. تابع echo مورد نوشته شده را برای شما چاپ می کند. حال دست به کار شوید و فایلی با نام index.php درست کرده و برچسب های بالا را در آن بگذارید. این کار را با یک فایل متنی و تغییر پسوند آن انجام دهید. test.txt را به index.php تغییر دهید.
نکته: فراموش نکنید که برای نمایش کد در مرورگر خود حتما فایل مورد نظر را در پوشه www که توسط برنامه wamp server ایجاد شده قرار دهید. نشانی این پوشه می تواند چیزی مانند این باشد:
I:wampwww
البته :I می تواند نام درایو محل نصب برنامه باشد. در داخل www پوشه ای به نام PHP ایجاد کنید و فایل را در آن قرار دهید. برنامه wamp را اجرا کرده و بر روی آیکون این برنامه در قسمت راست نوار وظیفه کلیک کرده و مطابق عکس زیر Localhost را انتخاب کنید.

حال شما کلمه «درود» را در مرورگر خود مشاهده می کنید. شما ابتدایی ترین کد خود را در پی اچ پی نوشتید٬ به همین سادگی.
از این به بعد ما تمرین های این درس را در همین فایل انجام می دهیم و خروجی را در مرورگر می بینیم.
البته راه های بیشتری برای نوشتن برچسب پی اچ پی وجود دارد مانند:
درس دوم- ساخت فرم و انتقال داده از فرم به برگه نمایش
اکنون که شما با نحوه کار پی اچ پی آشنا شدید٬ وقت آن رسیده که از آن دانش پایه ای استفاده کرده و رفته به رفته برنامه نویسی با پی اچ پی را به طور جدی تر دنبال کنیم. در طول این درس ما تلاش می کنیم از موارد گفته شده استفاده کرده و قدم به قدم نکات جدید را به آن اضافه کنیم. این درس با ساخت فرم در اچ تی ام ال آغاز شده و یاد می گیریم که چطور می توانیم از پی اچ پی برای کار با مقادیر فرستاده شده توسط فرم استفاده کنیم.
ساخت فرم اچ تی ام ال
در ساخت یک تارنمای پویا یکی از مهمترین موارد کار با فرم های اچ تی ام ال و سامان دادن داده های ارسالی از آن توسط پی اچ پی است.
برای انجام این مهم دو کار ضروری است٬ یکی ساخت خود فرم و دیگری نوشتن کد پی اچ پی برای گرفتن و پردازش داده های ارسالی فرم.
از آنجایی که پیش نیاز این درس اچ تی ام ال و آگاهی کمی از سی اس اس است، ما وارد جزییات چگونگی ساخت فرم نخواهیم شد اما در یک مثال شما این فرم را در اختیار خواهید داشت. هر فرم اچ تی ام ال با برچسب
پایان می پذیرد. در داخل این فرم دو ویژگی وجود دارد که در زیر به دلیل استفاده از آنها اشاره می کنیم:- action: این ویژگی تعیین می کند که داده ها به کدام فایل که کد پی اچ پی در آن قرار دارد ارجاع داده شود.
- method: این نحوه عملکرد در ارسال داده ها را تعیین می کند که در زمان خود به آن بیشتر می پردازیم.
در داخل این برچسب فرم٬ المان های دیگری نظیر textbox و radio button و select menu و غیره قرار می گیرند. این المان ها براساس نیاز و در جای مشخص خود واقع می شوند. اما نکته مهم نامی است که شما برای آنها انتخاب می کنید که کد پی اچ پی با آن نام ها، آنها را شناسایی می کند.
مشخصات ویژگی های method در فرم
دو انتخاب برای این ویژگی وجود دارد که در زیر به آنها پرداخته می شود:
- GET: وقتی از این ویژگی استفاده می کنیم٬ داده ها به صورت نام = مقدار به مرورگر شما داده می شود به طوری که شما در نشانی مرورگر خود این داده ها را مشاهده می کنید.
موارد استفاده از این ویژگی زمانی است که شما به طور مثال یک فرم جستجو می سازید و کاربران از این فرم برای پیدا کردن اطلاعات خود استفاده می کنند. در این حالت، داده وارد شده توسط کاربر که در داخل کادر جستجو نوشته شده است به صورت نام = مقدار به مرورگر داده می شود که این در نشانی قابل مشاهده است.
خوبی این کار این است که کاربر می تواند این صفحه را برای خود نشان گذاری یا Bookmark کند و یا با کمک دکمه عقب (Back)٬ به عقب برگردد.
نگران نباشید! زمانی که فرم را با هم ساختیم، به صورت عملی این مورد را کاملا خواهید دید.
نکته ۱: به خاطر پدیدار شدن داده ها در محل نشانی مرورگر، ما از ویژگی get در مواردی که امنیت در درجه بسیار بالای باشد به هیچ وجه استفاده نمی کنیم.
نکته ۲: در اندازه مقدار داده شده به متد get محدودیت وجود دارد.
- POST: به طور کلی از این ویژگی برای زمانی استفاده می کنیم که امنیت بیشتری لازم داریم؛ چرا که این متد، داده ها را در مرورگر نشان نمی دهد. مثلا فرض کنید می خواهید مقداری را در پایگاه داده ها ثبت کنید و یا می خواهید رایانامه ای را ارسال کنید.
نکته: در استفاده از این متد هیچ محدودیتی برای اندازه داده ارسالی نداریم.
خوب زمان آن رسیده که ما با هم فرمی بسازیم و از دانش کسب شده تا به حال استفاده کنیم. آماده اید؟
ابتدا فایلی با نام form.php ساخته و در پوشه www/php که قبلا در پوشه برنامه WampServer ساخته اید قرار دهید. حال برنامه را اجرا کرده و به آدرس http://127.0.0.1/php/form.php بروید و یا از طریق آیکون برنامه، Localhost را انتخاب کنید. فعلا یک برگه سفید بیش نیست اما در ادامه این برگه را با فرم خود پر می کنیم.
نکته: همانطور که در بالا گفتیم برای این قسمت ما دو مرحله کار داریم: ساخت فرم و نوشتن کد پی اچ پی. نکته قابل توجه این است که ما می توانیم به دو شکل این کار را انجام دهیم. یکی گذاشتن هر دو قسمت یعنی فرم و کدهای پی اچ پی در داخل یک فایل و دیگری جدا کردن این دو قسمت به صورتی که فرم در یک فایل باشد و کد پی اچ پی در فایل دیگر. ابتدا ما به شکل دو فایل که کار را ساده تر می کند این کار را انجام می دهیم و در آینده به شکل تک فایل.
در فایل فرم خود کدهای زیر را وارد کنید:
< head>
< link rel="stylesheet" type="text/css" media="all" href="style.css" />
< /head>
< !-- کد برای ساخت فرم - form.html -->
< form action="form_handler.php" method="get">
< fieldset>
< legend align="right">لطفا فرم زیر را پر کنید
< label> نام
< input type="text" name="name" />
< label> رایانامه
< input type="text" name="email" />
< label>دیدگاه
< textarea name="comments" >
< /fieldset>
< input type="submit" name="submit" value="ارسال" class="submit"/>
< /form>
< /body>
< /html>
حال فرم خود را در مرورگر نظاره کنید.
قسمت بعدی فایلی است که کدهای پی اچ پی در آن قرار دارد. فایل دیگری با نام form_handler.php بسازید. این فایل کار دریافت و سازماندهی داده ها را انجام می دهد. اطلاعات زیر را در داخل آن بنویسید:
$name = $_GET['name'];
$email = $_GET['email'];
$comments = $_REQUEST['comments'];
echo 'با سپاس
' . $name . '
برای این نوشته
' ;
?>
ما با شما تماس می گیریم توسط این رایانامه
' ;?>
برگشت
قبل از امتحان کدها یک کار دیگر هم باید انجام دهیم تا داده ها همان طور که ما می خواهیم نمایش داده شوند. فایل دیگری بسازید و نام آن را style.css بگذارید و کدهای زیر را در داخلش بنویسید.
body { background-color:#fff; text-align: center; color:#333;}
/* قسمت فرم */
form { width:700px; margin:100px auto auto;}
fieldset{border:1px solid #ddd;}
label, input, textarea{margin:5px 10px 0px auto; text-align: right; clear: both; float:right;width:60%;}
input{margin:5px 10px 10px auto}
textarea{width:80%; height:150px;}
.submit{float: none; text-align: center; border:1px solid #ddd; color:#039;}
/* قسمت پی اچ پی */
#contain{ border:1px solid #ddd; width:60%; margin:150px auto auto auto; overflow: hidden;}
span{color: GREEN;}
.email{color:#960;}
.comment{color:#09C; width:80%; border:1px solid #eee; margin: auto;}
در حال حاضر ما سه فایل داریم؛ یکی برای ساختن فرم٬ دیگری برای کار با داده های فرم و آخری برای ساختار نمایش داده ها در مرورگر. حال می توانید عملکرد کد خود را ببینید.
نکته ۱: هر سه این فایل ها باید در داخل یک پوشه قرار گیرند.
نکته ۲: ما از متد GET و REQUEST برای ارسال داده ها استفاده کردیم٬ لطفا نگاهی هم به نشانی مرورگر بعد از فشردن دکمه ارسال بیاندازید. چه می بینید؟ بله داده ها به صورت نام و مقدار در داخل نشانی مرورگر دیده می شوند. حال در دو فایل فرم و پی اچ پی هر جا که GET یا REQUEST می بینید، آنها را با POST عوض کنید. حال چه شد؟ اثری از داده ها در مرورگر نیست. بعد از استفاده از POST دیگر داده ها در مرورگر فرستاده نمی شوند.
نکته ۳: اگر در فایل form_handler.php دقت کنید ما از متغیری با نام $_REQUEST به صورت آنچه در زیر می بینید استفاده کردیم.
$comments = $_REQUEST['comments'];
به این نوع متغیر فرا جهانی می گویند که اطلاعات فرستاده شده از فرم را ذخیره می کند. در آینده در مورد این نوع متغیر بیشتر حرف می زنیم.
نکته ۴: کدهای داده شده در این درس قبلا امتحان شده است٬ پس اگر احیانا به خطایی برخورد کردید، ممکن است که شما کدها را اشتباه وارد کرده باشید. اما اگر از کار خود مطمئن هستید لطفا مورد خطا را در پرسشکده و در تالار مربوط به این دوره اطلاع دهید تا مشکل را حل کنیم.
برای یافتن خطای احتمالی فقط کافیست که به خط اشاره شده در خطا رجوع کنید و بعد در برگه مورد نظر، خط خطادار را پیدا کرده و با کد نوشته شده منطبق کنید.
نکته ۵: اگر به جای نوشته هایی مثل نام و... مطلبی نبود، این یعنی که متغیر خالی است و مشکلی در انتقال داده به متغیر اتفاق افتاده است.
خوب این درس هم به پایان رسید. امیدوارم که با تمرین بتوانید چنین کاری را در نمونه های دیگر انجام دهید. در درس بعدی به شرط ها در پی اچ پی می پردازیم که به ما کمک می کنند قبل از چاپ هر داده گرفته شده از فرم، آن را مورد ارزیابی قرار دهیم.
تا بعد...
درس سوم- آشنایی با شرط ها و عملگرها
در درس قبلی با چگونگی ساخت فرم در اچ تی ام ال و ارتباط آن با پی اچ پی برای انتقال داده و کار با آن آشنا شدیم. نکته قابل توجه این است که اگر کاربر در داخل هر کدام از کادرهای تعیین شده در فرم مطلبی ننویسد٬ باز فرم ارجاع داده خواهد شد و جای آن کادر خالی باقی می ماند.
حال می خواهیم به آشنایی شرط ها بپردازیم و از آنها برای ارزیابی فرم و کادرهایش بهره ببریم به طوری که اگر کادری توسط کاربر خالی ماند، سیستم هشداری بدهد تا آن کادر پر شود.
برای انجام این مهم لازم است که از توابع شرطی و عملگرها استفاده کنیم که موضوع این درس است.
آشنایی با شرط ها و عملگرها
شرط در برنامه نویسی به زبان ساده، قرار دادن یک شرط برای انجام عملی است. ما در زبان روزمره بارها در موقعیت های متفاوت از آنها استفاده می کنیم. به طور مثال «اگر باران بیاید» (شرط) «ما به گردش نخواهیم رفت» (عمل مرتبط به شرط).
این یک شرط است که در صورت درستی شرط٬ عمل بعد از آن «نرفتن به گردش» اتفاق می افتد. البته این فقط یک شرط بود. ما می توانیم چند شرط را تعیین کنیم و یا از شرط های تو در تو استفاده کنیم. به مثال قبلی از این منظر نگاه کنید: «اگر باران بیاید» و «اگر ماشین نداشته باشیم» (دو شرط) «به گردش نخواهیم رفت».
خب با این مثال ها فکر می کنیم که به منظور استفاده از شرط ها پی بردید. نحوه کار با شرط ها در زبان برنامه نویسی هم دقیقا مثل همان مثال بالاست با این تفاوت که در زبان برنامه نویسی ما این «اگرها» را تبدیل به عبارتی می کنیم که برنامه آن را بفهمد.
مهمترین عباراتی که در ساخت شرط ها از آنها استفاده می کنیم if و else و else if هستند.
if: همان «اگر» خودمان است.
else: در غیر این صورت
else if: معنی آن می شود٬ در غیر این صورت اگر
شروع کار از عبارت if است٬ بعد از آن شرط ما قرار می گیرد البته در پرانتز٬ به دنبال آن هم عمل هایی که می خواهیم در صورت درستی یا نادرستی شرط اتفاق افتد.
if(شرط) {
//عملی که در صورت درستی باید انجام شود
}
خب حالا کمی با شرط ها آشنا شدیم اما قبل از بیشتر وارد شدن به بحث شرط ها لازم است که ما با عملگرها هم آشنا شویم.
عملگرها در اصل عباراتی هستند که درون پرانتز بعد از if قرار می گیرند تا شرط ما را پیاده سازی کنند. در زیر به لیست عملگرها و کارایی آنها توجه کنید:
- عملگرهای مقایسه ای: این دسته عملگرها برابری دو طرف عملگر را مقایسه می کنند:
- == : برای ارزیابی برابری دو طرف عملگر است که در صورت برابری پاسخ درست می شود.
- =! : این عملگر عدم برابری دو طرف را بررسی می کند که در صورت برابر نبودن پاسخ درست است.
- < : این علامت کوچک تر است، یعنی اگر طرف چپ کوچک تر از طرف راست عملگر است، پاسخ درست می شود.
- > : این درست برعکس کوچک تر یعنی بزرگ تر است. در صورتی که طرف چپ عملگر بزرگ تر باشد، پاسخ درست می شود.
- <= : کوچک تر یا مساوی٬ هر دو صورت بررسی می شود.
- <= : بزرگ تر یا مساوی.
عملگرهای منطقی: عملگرهای منطقی عبارات را براساس منطق بررسی می کنند:
- ! : این عملگر عبارت را منفی یا برعکس می کند مثلا درست می شود غلط
- && : این همان «و» خودمان است٬ زمانی این عملگر نتیجه درست می دهد که دو طرف آن بررسی شود. مثلا اگر x=5 و y=7 باشد، در صورت درستی هر دو عبارت، خروجی صحیح می شود.
- || : این همان «یا» می شود. در این عملگر هر کدام از دو طرف درست باشد، پاسخ صحیح می شود. مثلا اگر x=5 یا y=7 شود، هر کدام درست باشد، پاسخ صحیح می شود.
- XOR: خروجی این عملگر زمانی درست است که فقط یکی از دو طرف درست باشد. اگر هر دو طرف درست یا هر دو طرف نادرست باشند٬ خروجی می شود ناصحیح.
نگران نباشید؛ ما با مثال های فراوان هر کدام از عملگرها و شرط ها را به طور مفصل شرح خواهیم داد. حال اجازه بدهید این را با خود عبارات شرطی بیشتر توضیح دهیم. از تک شرط شروع می کنیم:
if(شرط) {
//عملی که در صورت درستی باید انجام شود
}
این یک وضعیت تک شرطی است که تنها اگر شرط درست باشد، انجام می شود. مثلا:
if(باران بیاید) {
ما به گردش نمی رویم
}
یا مثلا اگر مقدار x با مقدار y برابر بود٬ x را چاپ کن:
if($x== $y) {
print $x;
}
شرط همراه با else:
if (شرط) {
//عملی که در صورت درستی باید انجام شود
}
else {
// عمل دیگری اتفاق افتد
}
این یک عبارت شرطی با یک شرط همراه دو عمل است. این عبارت می گوید اگر شرط درست بود، این عمل اتفاق افتد، در غیر این صورت عمل دیگری اتفاق افتد. فرق این شرط با قبلی این است که ما از else برای زمانی که شرط نادرست بود استفاده کردیم. توجه کنید که در مثال قبلی اگر شرط نادرست بود، هیچ اتفاقی نمی افتد اما در این مثال در صورت نادرستی شرط، یک عمل دیگر اتفاق می افتد.
if (باران بیاید) {
به گردش نمیرویم
}
else { // در غیر این صورت
به گردش می رویم
}
حال مثال را با متغیرها انجام می دهیم که اگر شرط درست بود یکی را چاپ کند و اگر شرط نادرست بود دیگری را.
if ($x == $y) {
print $x ;
}
else {
print $y ;
}
در مثال تک شرطی ما فقط به باران آمدن توجه کردیم که اگر بیاید به گردش نمی رویم یا اگر دو مقدار متغیرها برابر بود، یکی را چاپ کند. اما اینجا اگر باران بیاید نمی رویم و اگر نیاید ( در غیر این صورت) به گردش می رویم. و در مثال اگر متغیرها برابر بودند، x را چاپ کن٬ اگر برابر نبودند، y را چاپ کن.
چند شرطی
حالا فرض کنید می خواهیم شرط هایی را به طور پشت سر هم قرار دهیم. توجه کنید:
if (شرط) {
//عملی که در صورت درستی باید انجام شود
}
else if ( شرطی دیگر) {
// عمل دیگری اتفاق افتد
}
else {
// در صورت اتفاق نیافتن هر کدام از شرطهای بالا این عمل صورت گیرد
}
در اینگونه شرط ها، ما دو یا بیشتر٬ شرط داریم که برنامه ابتدا شرط ابتدایی را بررسی می کند٬ اگر شرط درست بود، اتفاق می افتد و از شرط ها خارج می شویم؛ اما اگر شرط ابتدایی درست نبود، شرط دوم بررسی می شود که در صورت درستی عمل، آن شرط اتفاق می افتد. اما اگر هیچ کدام از شرط ها درست نبود آخرین عمل صورت می گیرد.
if (باران نیاید) {
به گردش می رویم
}
else if ( ماشین داشته باشیم) {
به گردش می رویم
}
else { // در غیر این صورت
به گردش نمی رویم
}
در این مثال اگر باران نیاید ما به گردش می رویم و شرط تمام می شود ٬ اگر باران بیاید و اگر ما ماشین داشته باشیم باز به گردش می رویم اما اگر باران بیاید و ماشین هم نباشد نمی رویم.
if ($x == $y) {
print $x +$y ;
}
else if ( $x > $y) {
print $x ;
}
else {
print $y ;
}
حال بیایید به شرط های تو در تو بپردازیم. نگران نباشید؛ ما برای هر کدام مثال می آوریم تا خوب برای شما مشخص گردد.
حالا می خواهیم برای اتفاق افتادن یک عمل دو شرط بگذاریم٬ مثال «اگر باران بیاید» و «اگر ماشین نداشتیم» یادتان هست!
if (شرط) {
if (شرط) {
//عملی که در صورت درستی باید انجام شود
}
}
else {
// عمل دیگری اتفاق افتد
}
به این گونه از شرط گذاری شرط تو در تو می گوییم٬ که در صورت درستی شرط ابتدایی٬ برنامه به شرط داخل شرط ابتدایی یعنی شرط دوم می رود٬ اما در صورت نادرستی شرط ابتدایی٬ شرط داخل آن اصلا بررسی نمی شود و برنامه به سراغ else می رود.
if (باران بیاید) {
if ( ماشین نداشته باشیم) {
به گردش نمی رویم
}
}
else { // در غیر این صورت
به گردش می رویم
}
به مثال زیر توجه کنید که از چند شرط به طور تو در تو استفاده شده است. این مثال می گوید که اگر متغیرها با هم برابر نیستند٬ هر کدام که بزرگ تر است را چاپ کن. در غیر این صورت یعنی اگر برابرند٬ جمع آنها را چاپ کن.
if ($x != $y)
{
if ( $x > $y){
print $x;
}
else {
print $y;
}
}
else {
print $x +$y ;
}
طبق مثال بالا اگر شرط ابتدایی برقرار نباشد یعنی اگر متغیرها برابر باشند به قسمت else آخر می رود و جمع آنها را چاپ می کند. اما در صورت برابر نبودن یعنی نادرست بودن شرط به داخل شرط ابتدایی رفته و شرط های دیگر را بررسی می کند.
نکته ۱: در زمانی که عمل بعد از درستی شرط یکی باشد، نیازی به گذاشتن { } نیست. این کاراکتر زمانی ضروری است که شما بخواهید چند دستور را بعد از درستی شرط انجام دهید. اما پیشنهاد می شود که شما همیشه از این کاراکترها استفاده کنید.
نکته ۲: تلاش کنید همیشه در زمان تعریف یک شرط هر دو کاراکتر {} را قبل از هر چیزی بگذارید چرا که در صورت استفاده از چندین شرط ممکن است ترتیب کاراکترها به هم بخورد که باعث ایجاد خطا می شود.
Switch
نوع دیگر شرط گذاری استفاده کردن از switch است که کارایی خود را دارد. نحوه نوشتن آن به شکل زیر است:
switch (متغیر)
{
case ‘مقدار ابتدایی’ :
{
// دستور
break ;
}
case ‘مقدار دوم’ :
{
// دستور
break;
}
default:
{
// دستور
break;
}
}
در این نوع شرطی، switch مقدار متغیر را با هر کدام از عبارات مقابل case مقایسه می کند. وقتی این مقدار برابر با هر کدام از عبارات شد، دستورات داخل آن case انجام می شود و بعد با کمک دستور break از داخل شرط خارج می شود. در درس های آینده از این نوع شرطی بیشتر حرف خواهیم زد و بهتر آن است که فعلا روی if تمرکز کنیم.
کاربرد شرط ها در برنامه
در درس قبل ما یک فرم درست کردیم و به کمک کدهای پی اچ پی داده ها را از فرم گرفته و در صفحه دیگری نمایش دادیم. مشکلی که این فرم داشت این بود که در زمانی که کاربر کادری از فرم را پر نمی کرد باز فرم عمل کرده و جای آن کادر را خالی می گذاشت.
حال با فراگیری شرطی ها و عملگرها می خواهیم این نقض را برطرف کنیم به صورتی که اگر کاربر چبزی ننوشت یا موردی را خالی گذاشت در صورت نیاز به او تذکر داده تا برگردد و فرم را کامل کند.
لطفا برنامه WampServer خود را اجرا کرده و سه فایل با نام های form.php و form_handler.php و style.css را ساخته و در پوشه www/php خود قرار دهید.
فایل form.php را باز کرده و کدهای زیر را داخل آن قرار دهید.
این دقیقا برابر همان فرمی است که در درس قبل ساختیم، البته با کمی از تغییرات مثلا تغییر متد.
حال ما نیاز به یک ارزیاب فرم با کدهای پی اچ پی داریم. فایل form_handler.php را باز کنید و کدهای پی اچ پی را در آن قرار دهید.
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
if ( !empty($_POST['name']) && !empty($_POST['comments']) && !empty($_POST['email']) )
{
echo 'با سپاس
' . $name . '
برای این نوشته
' ;
?>
ما با شما تماس می گیریم توسط این رایانامه
' ;?>
}
else
{
echo '
}
?>
برگشت
بررسی کدهای form_handler.php
در این کدها ابتدا ما داده های فرستاده شده از فرم را گرفته و در داخل متغیرها می گذاریم. سپس از شرطی ها برای بررسی داده ها استفاده می کنیم. کاری که انجام می شود این است که با یک «اگر» بررسی می کنیم که آیا همه کادرها پر شده یا نه.
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
این سه خط٬ داده ها را از فرم توسط متغیرهای پر شده $_POST گرفته و در متغیرهای تعریفی جدید می گذارند. حال می توانیم با بررسی مقدار داشتن یا نداشتن این متغیرها به خالی بودن یا پر بودن کادرها پی ببریم. این کار را با شرطی زیر انجام می دهیم:
if ( !empty($name) && !empty($_POST['comments']) && !empty($_POST['email']) )
این شرطی بررسی می کند که اگر متغیرهای نام٬ رایانامه و دیدگاه خالی نیست، دستورهای بعدی انجام شوند. در صورتی که پاسخ این شرط منفی باشد، به قسمت else می رود و هشدار خالی بودن را می دهد.
else
{
echo '
}
همانطور که ملاحظه می کنید در داخل پرانتز if از هر دو نوع متغیر استفاده شده تا به شما گوناگونی این کاربرد را نشان دهیم. به طور مثال یکجا از خود متغیر ($_POST['comments']) استفاده شده و در جای دیگر متغیر $_POST['name'] را درون متغیر دیگری با نام $name ریخته و از آن استفاده کردیم.
در داخل این شرط از دو عملگر && و ! برای مطمئن شدن از خالی نبودن متغیرها استفاده شده است.
در زمانی که این شرط ها درست باشند، برنامه به داخل if رفته و دستورات چاپ متغیرها را اعمال می کند.
برای نمایش بهتر داده ها در صفحه مرورگر می توانید فایل سوم را هم به پوشه اضافه کنید. این فایل همان فایل سی اس اس است که در درس قبلی داشتیم.
نکته: ممکن است که شما نخواهید کاربر را مجبور کنید که برای همه کادرها داده ای وارد کند. در این صورت می توانید آن قسمت را از شرط حذف کنید.
به کاری که ما در این قسمت انجام دادیم ارزیابی داده ها می گویند. در طول دوره ما تلاش می کنیم که از تمام آموخته ها در موقعیت های مختلف استفاده کنیم تا شرایط بهتر و ساده تری برای یادگیری این مفاهیم بوجود آید.
در درس بعدی ما به یکی دیگر از انواع داده ها یعنی آرایه ها می پردازیم. آرایه ها دقیقا مانند دیگر متغیرها هستند با این تفاوت که آنها می توانند بیش از یک مقدار را برای ما نگهداری کنند.
پس تا درس بعد بدرود.
منبع: درسنامه
برچسبها: پی اچ پی, php
.: Weblog Themes By Pichak :.


