سفارش تبلیغ
تبلیغات در پارسی بلاگ
 
پایگاه خبری تحلیلی فرزانگان امیدوار
علیرضااحسانی نیا
درباره وبلاگ


در اینجا می توانید خبرهای داغ سیاسی فراجناحی را بخوانید...علیرضااحسانی نیا
آمار وبلاگ
  • بازدید امروز: 2915
  • بازدید دیروز: 3588
  • کل بازدیدها: 9453500
صفحات وبلاگ
نویسندگان
سه شنبه 91 شهریور 14 :: 4:17 صبح ::  نویسنده : الحمدلله رب العالمین

-آموزش کامل قرار دادن عکس در پس زمینه ی صفحه

شما برای قرار دادن یک عکس در پس زمینه ی وبتون باید یه تغیراتی تو تگ <body> بدید . برای اینکار تگ <body> را در قالب خود پیدا کنید و اونرو به صورت زیر دربیارید :

1<body background="Adress Of Image">

که باید به جایه Adress Of Image آدرس عکسی رو بزارید که میخواید بره به پس زمینه ی وب . با اینکار این عکس در پس زمینه تکرار میشه .

حالا اگه خواستید بکگروند شما تکرار نشه و یا اینکه به صورت عمودی یا افقی تکرار بشه باید به شکل زیر عمل کنید :

:: برای اینکه تکرار نشه باید تگ بادی به شکل زیر در بیاد :

1<body background="Adress Of Image" style="background-repeat:no-repeat">

همونطور که میبینید با اضافه کردن میان کد background-repeat:no-repeat برای تکرار عکس مقدار No رو قرار دادیم . پس عکس تکرار نمیشه .

:: حالا اگه خواستید عکس پس زمینه به صورت افقی تکرار بشه تگ بادی باید به شکل زیر دربیاد :

1<body background="Adress Of Image" style="background-repeat:repeat-x">

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

1<body background="Adress Of Image" style="background-repeat:repeat-y">

-آموزش PHP (بخش اول) معرفی PHP و قابلیت های آن


این اولین مطلبیست که در سایت ۷Learn قرار می دهم ، در این سری مطالب قصد دارم یک آموزش جامع و شامل برای PHP قرار دهم ، به گونه ای که از ابتدائی ترین مبحث زبان PHP شروع خواهم کرد تا مبحث ساخت CMS ،کار با فرم ها و… اما نکته ای که قابل عرض است این است PHP یک زبان سخت نیست ولی انتظار هم نداشته باشید که که ظرف ۵ دقیقه به یک برنامه نویس PHP حرفه ای تبدیل شوید .

 

220px PHP logo.svg  آموزش PHP (بخش اول) معرفی PHP و قابلیت های آن

در ابتدا و قبل شروع آشنایی با زبان php  ، شما باید با زبان HTML آشنایی داشته باشید.

PHP چیست ؟

  • PHP مخفف Hypertext Preprocessor می باشد.
  • PHP یک زبان سمت سرور است همانند ASP.NET
  • کد های PHP در سرور اجرا می شوند.
  • PHP قابلیت کار با بسیاری از پایگاه داده ها همانند MySql و Oracle را داراست.
  • PHP یک نرم افزار منبع باز و کاملا مجانی می باشد .

چرا PHP ؟

  • PHP دارای قابلیت CrossPlatforms می باشد یعنی در همه سیستم عامل ها قابل اجراست.
  • PHP با تمام وب سرورهای امروزی همانند APACHE , IIS سازگار است
  • یادگیری آن آسان است البته به شرط تمرین!

در ابتدا شما را با ویژگی های زبان PHP آشنا خواهیم ساخت :

  • PHP یک زبان سمت سرور است : شاید تا به حال کلمه “زبان سمت سرور” را زیاد شنیده باشد ، ولی شاید لپ مطلب برای شما درک نشده باشد ، وقتی می گویند PHP یک زبان سمت سرور است ، یعنی این که کد PHP در ابتدا توسط شما نوشته می شود ، سپس توسط سرور(ویندوز یا لینوکس) پردازش می شود و خروجی را به صورت HTML به نمایش در خواهد آورد و هیچکس کد اصلی شما را نمی بیند و تنها خروجی کد شما را می بینند  . در قسمت پائین یک مثال را آورده ام :
1<?php
2  echo date('Y');
3?>

در قسمت بالا یک قطعه کد PHP نوشته ام که سال کنونی را به نمایش در می آورد ، خروجی HTML آن به این صورت می باشد :

۲۰۱۲

بله ! تنها خروجی ما ۲۰۱۲ می باشد ، و این یعنی زبان سمت سرور، هیچکس کد اصلی date را نمی بیند و تنها خروجی آن یعنی ۲۰۱۲ را میبینند.

  • PHP یک زبان داینامیک است : دراین قسمت داینامیک بودن PHP را برای شما به نمایش خواهم درآورد : همیشه شما بخش FOOTER سایت ها را مشاهده می نمائید ، که اکثرا پس از نوشتن حق کپی رایت ، تاریخ تاسیس سایت و تاریخ کنونی را درج می کنند ، حال فرض کنید امروز آخرین روز سال ۲۰۱۱ است ، و شما می خواهید به مسافرت بروید ، و هنوزدر سال ۲۰۱۱ قرار داریم ، حال اگر بخواهید بدون اینکه نگران بروزرسانی قسمت حق کپی سایت خود باشید و از تعطیلات سال جدید لذت ببرید ، می توانید از قطعه کد زیر استفاده نمائید :
1<p> &copy; <?php echo date('Y'); ?> 7Learn.com </p>

با قرار دادن این کد در قسمت footer سایت خود ، به طور خودکار با آمدن سال جدید ، قسمت فوتر سایت شما به ۲۰۱۲ تبدیل می شود ، نکته ی جالبی که در این قسمت وجود دارد این است که PHP بر خلاف جاوا اسکریپت ، زمان یا تاریخ سیستم عامل شما نمی گیرد ، بلکه از زمان و تاریخ سرور خود استفاده می کند و بنابر این ویژگی درصد خطای زمان به صفر می رسد ولی در جاوا اسکریپت اگر زمان سیستم عامل شما اشتباه باشد ، زمان و تاریخ را نیز اشتباه نمایش می دهد ، حال خروجی کد فوق بدین شکل می باشد :

footer آموزش PHP (بخش اول) معرفی PHP و قابلیت های آن

این یک مثال کاربردی بود تا مفهوم داینامیک بودن php را درک نمائید .

نکته :همانطور که ملاحظه می نمائید ، php را درون کد html قرار داده ایم ، و در اصل هم php برای جاسازی درون کد html یک صفحه وب طراحی شده است.

با PHP چه کارهایی می توان انجام داد :

  1. ارتباط با پایگاه داده ها مانند ایجاد فرم و قرار دادن  اطلاعات فرم به صورت رکورد
  2. ارسال ایمیل به کاربر
  3. آپلود فایل روی صفحه وب
  4. کار با فایل ها
  5. ایجاد سیستم های مدیریت محتوا همانند وردپرس
  6. و…

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

-آموزش PHP (تابع های دریافتی نام Page کنونی)

 

در این پست با سری دوم آموزش php همراه شما هستیم ، امروز میخواهیم یک بخش مهم از php را با یکدیگر جلو ببریم .

 در این پست یاد خواهید گرفت :

  • آدرس صفحه کنونی را دریافت نمائید.
  • نام صفحه کنونی را دریافت نمائید.
  • استفاده از تگ canonical برای دریافت صفحه کنونی (شدیدا موثر در سئو)
  • عنوان صفحه را به صورت داینامیک ایجاد نمائید.
  • متمایز کردن نام Home Page سایت با دیگر صفحات سایت

دریافت آدرس صفحه کنونی :

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

برای اینکار از یک آرایه سوپر گلوبال به نام SERVER با اندیس SCRIPT_FILENAME استفاده می شود :

1<?php
2$_SERVER['SCRIPT_FILENAME'];
3?>

این اندیس همیشه آدرس مطلق صفحه کنونی را دریافت می کند ، برای امتحان این دستور کافیست از دستور echo قبل از آرایه استفاده نمائید ، تا آدرس صفحه کنونی یا Current Page را به شما نمایش دهد :

1<?php
2echo $_SERVER['SCRIPT_FILENAME'];
3?>
نکته : آرایه های سوپرگلوبال و اندیس های آن ها همواره با حروف بزرگ نوشته می شوند.

دریافت نام فایل آدرس کنونی :

دستور قبلی آدزس مطلق یک صفحه را برای ما بر میگرداند ، اما اکنون میخواهیم برای ما فقط نام فایل را برای بر گرداند ، برای اینکار علاوه بر اینکه از آرایه سوپر گلوبال SERVER همراه اندیس SCRIPT_FILENAME استفاده میکنیم از تابع basename نیز استفاده می نمائیم :

1<?php
2basename($_SERVER['SCRIPT_FILENAME']);
3?>

این تابع مسیر یک فایل را به عنوان یک پارامتر دریافت می کند و نام فایل آن آدرس را دریافت می کند!

حال برای اینکه آن را به نمایش درآورید کافیست از دستور echo استفاده نمائید.

نکته :

تابع basename یک آرگومان اختیاری دوم نیز دریافت میکند و آن نیز یک رشته متنی که حاوی پسوند فایل همواره یک نقطه میباشد ، اضافه کردن این آرگومان باعث حذف پسوند نام فایل می شود.


حال اگر بخواهید پسوند صفحه برای شما نمایان نشود کافیست که یک کلمه به دستور خود اضافه نمائید :
1<?php
2echo basename($_SERVER['SCRIPT_FILENAME'] , '.php');
3?>

برای اینکار کافیست که نام پسوند سایت خود را در یک کوتیشن قرار دهید.

مثال شماره ۱ :

این پست مربوط به آموزش زبان php است ولی بد نیست با php از سئو نیز بهره مند شویم ، حال میخواهیم از تگ canonical استفاده نمائیم برای دریافت صفحه کنونی ولی با روشی به غیر روش بالا که توضیح داده شد ، این روش تاثیر بسیار زیادی در سئو سایت شما دارد و به گوگل تکراری نبودن page های خود را اعلام می نمائید.

نکته : این تگ مانند ریدایرکت ۳۰۱ عمل میکند فرض کنید شما با استفاده از این ریدایرکت یک صفحه را به صفحه ی دیگر ریدایرکت میکنید این تگ هم به اسپایدر میگوید که این مطلب مانند این مطلب دیگر هست و باید یکی از انها ایندکس شوند و اسپم حساب نشوند.این تگ یکی از بهترین و ساده ترین روش های جلوگیری از ایجاد شدن مطالب یکسان هست.یا به عبارتی دیگر صفحات متفاوت باید به عنوان یک صفحه حساب شوند.

برای اینکار یک روش ساده و مبتدی را آموزش خواهیم داد :

کدهای زیر را در تگ Head سایت خود قرار دهید .

در ابتدا کد زیر را درج نمائید :

1<?php
2 
3$pageURL= 'http://' $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
4?>

این کد همان روش قبلی می باشد ولی میدانید که php دارای تابع های متعددی می باشد سپس این کد را نیز قرار دهید :

1echo "<link rel=\"canonical\" href=\"$pageURL\">\n";
اگر بخواهید این روش را به روش قبلی انجام دهید کافیست  کد زیر استفاده نمائید :
1<?php
2 
3$pageURL =$_SERVER['SCRIPT_FILENAME'];
4echo "<link rel=\"canonical\" href=\"$pageURL\">\n";
5?>

حال اگر شما سورس صفحه خود ملاحظه نمائید ، آدرس صفحه کنونی را در متا تگ canonical خواهید دید.

ایجاد عنوان صفحه (Page Title) به صورت داینامیک

اکنون که یاد گرفته اید آدرس و نام یک صفحه را دریافت نمائید حال میخواهیم آدرس یک صفحه را به صورت داینامیک ایجاد نمائیم.

برای اینکار کافیست کد زیر را در تگ Head سایت خود درج اضافه نمائید :

1<?php
2$title = basename($_SERVER['SCRIPT_FILENAME'], '.php');
3echo "<title>$title</title>\n";
4?>

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

اما اگر بخواهید حرف اول عنوان سایت شما با حروف بزرگ باشد (البته اگر عنوان سایت شما انگلیسی باشد) باید از تابع ucfirst که مخفف UpperCase می باشد استفاده نمائید :

1<?php
2$title = ucfirst(basename($_SERVER['SCRIPT_FILENAME'], '.php'));
3echo "<title>$title</title>\n";
4?>
نکته : تابع ها را در php می توانید به صورت تو در تو نیز استفاده نمائید ، همانگونه که ما تابع basename و ucfirst را به صورت تو در تو قرار دادیم ولی میتوانید آن را نیز به صورت گشوده شده نیز قرار دهید ، اگر بخواهیم تابه فوق را به صورت تو در تو قرار ندهیم کد ما اینگونه می شود :
1<?php
2$title = $_SERVER['SCRIPT_FILENAME'];
3$title = basename($title , '.php') ;
4$title = ucfirst($title);
5echo "<title>$title</title>\n";
6?>

شاید تا به حال فهمیده اید که این روش یک مشکل بسیار بزرگ دارد ، اگر نام صفحه شما تشکیل شده از چندین جمله باشد ، فاصله های خالی تبدیل کد اسکی Space می شوند (%۲۰) و این کار چندان جالب نیست برای حل این مشکل کافیست از تابع str_replace استفاده نمود:

1<?php
2$title =ucfirst(basename( $_SERVER['SCRIPT_FILENAME'] , '.php'));
3$title = str_replace(' ' , '_' , $title);
4echo "<title>$title</title>\n";
5?>

تابع str_replace به دنبال کاراکتر _ می گردد و اگر این کاراکتر در عنوان سایت دیده شد آن را تبدیل به کاراکتر خالی کرده و سپس عنوان سایت را با فضای خالی نمایش می دهد

متمایز کردن Index سایت با دیگر صفحات :

همانطور که به نظر شما رسیده است ، بسیاری از سایت ها ، صفحاه اول آن ها یا همان Index عنوانی متفاوت با دیگر صفحات دارد ، فرض کنید که صفحه اصلی ما index نام دارد ، حال اگر با استفاده از آرایه سوپر گلوبال SERVER نام آن را برگردانده باشیم در عناون سایت ما کلمه Index درج می شود ، که این کار اصلا کار جالبی نیست و چنگی به دل نمی زند ، برای این کار می توانیم از یک دستور if استفاده نمائیم که اگر تابع basename نام Index را برگرداند ، نام index به نام دیگری مثلا milad heydari تغییر کند :

1<?php
2$title =basename( $_SERVER['SCRIPT_FILENAME'] , '.php');
3$title = str_replace(' ' , '_' , $title);
4if($title == 'index3') {
5$title = 'milad heydari';
6}
7echo "<title>$title</title>\n";
8?>

حال اگر حرف اول عنوان سایت شما با حروف بزرگ نوشته شده باشد ، این شرط ما برقرار نمی شود چون که php میان حروف بزرگ و کوچک تمایز قائل می شود برای حل این مشکل از تابع strtolower استفاده می کنیم ، این تابع تمام حروف یک رشته را  به حروف بزرگ تبدیل می کند.

1<?php
2$title =basename( $_SERVER['SCRIPT_FILENAME'] , '.php');
3$title = str_replace(' ' , '_' , $title);
4if(strtolower($title == 'index3')) {
5$title = 'milad heydari';
6}
7echo "<title>$title</title>\n";
8?>

-آموزش PHP (بخش دوم) نصب xampp و اجرای کدهای php در ویندوز

 

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

مراحل نصب PHP و مخلفات :

۱) در ابتدا از این لینک نرم افزار XAMPP را دریافت نمائید. ( این نرم افزار ویندوز شما را تبدیل به یک سرور مجازی می کند و شما با استفاده از این  نرم افزار می توانید کدهای PHP خود پردازش و اجرا نمائید ، همچنین می توانید MySql را  نیز با استفاده از این شبیه ساز نصب نمائید.)

http://www.apachefriends.org/download.php?xampp-win32-1.7.7-VC9-installer.exe


2) پس از اینکه این نرم افزار را دانلود نمودید ،آن را اجرا کرده و پس از انتخاب زبان مورد نظر خود ، آن را با زدن چند ok , next نصب نمائید (فرض ما در این است که شما در درایو C این نرم افزار را نصب نموده اید ). پس از دریافت پیغام Congratulations! ، روی دکمه Yes کلیک نمائید و در پنجره ای که برای شما نمایان می شود ، برای دو قسمت Apache و MySql گزینه Start را کلیک نمائید .

xampp1 آموزش PHP (بخش دوم) نصب xampp و اجرای کدهای php در ویندوز

xampp2 آموزش PHP (بخش دوم) نصب xampp و اجرای کدهای php در ویندوز

۳) حال در ویندوز شما هم PHP نصب شده ، هم MySql .

4) برای اینکه تست کنید که PHP در ویندوز شما به درستی نصب شده است مسیر زیر را دنبال نمائید :

C:\xampp\htdocs\xampp

 سپس در این پوشه یک فایل Notepad را ایجاد نمائید  و آن را با نام phpinfo.php ذخیره نمائید ، سپس آن را در notepad بدین گونه ویرایش نمائید :

1<?php
2  phpinfo();
3?>

پس از ذخیره کردن فایل ، ادرس زیر را در مرورگر خود تایپ نمائید :

http://localhost/xampp/phpinfo.php

پس از اینکه enter را بزنید ، اگر php شما به درستی نصب شده باشد ، صفحه ای مانند شکل زیر را مشاهده می نمائید :

php آموزش PHP (بخش دوم) نصب xampp و اجرای کدهای php در ویندوز

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

در این قسمت php را نصب نمودیم ، در قسمت های بعدی کد نویسی یا بهتر بگویم اسکریپت نویسی با php را شروع خواهیم کرد.

-آموزش PHP (بخش سوم) نوشتن اسکریپت های php

 

این فصل ، یعنی بخش نوشتن اسکریپت های php خود دارای ۲ یا ۳ بخش تقسیم خواهد شد که در در این مطلب در رابطه با مباحث زیر بحث خواهیم کرد :

  • آشنایی با چگونگی ساختار PHP
  • جاسازی PHP درون یک صفحه وب
  • ذخیره داده ها در متغیرها
  • نمایش خروجی PHP
  • نحوه تعریف انواع آرایه
  • انواع قلمرو های متغیرها در PHP

220px PHP logo.svg  آموزش PHP (بخش سوم) نوشتن اسکریپت های php

اگر شما جز افرادی هستید که از کد نوشتن می ترسید ، ممکن است این مطلب کمی برای شما لذت بخش نباشد ، ولی این مطلب جز مهمترین و اگر بهتر بخواهم بگویم Base زبان برنامه نویسی PHP است ، البته سعی خواهم کرد که تا حد ممکم آن را برای شما ساده کنم.

 بخش اول : آشنایی با چگونگی ساختار PHP :

در هر صفحه PHP باید المان های زیر را رعایت نمائید :

  • پسوند قابل پردازش باید PHP باشد مانند Index.php
  • وجود تگ های باز <?php در هر شرایطی اجباری ولی تگ بسته ؟> را می توان در شرایطی حذف کرد.
  • کد های php را می توانید با html ترکیب نمائید ولی دقت کنید که کدهای php حتما باید درون تگ های باز و بسته باشند همانند دستور زیر :
1© <?php echo date('Y'); ?> 7Learn.com
  • می توانید از چندین قسمت کد php روی یک صفحه استفاده کنید (یعنی چندین مورد تگ های باز و بسته php) ولی نمی توانید آنها را درون یکدیگر قرار دهید.
  • زمانی که شما ترجیح می دهید که کد php خود در یک فایل جداگانه ذخیره نمائید ، تگ <?php اجباری بوده ولی تگ ?> اختیاری می باشد ، در حقیقت بهتر است که تگ بسته را وارد نکنید ، اما اگر کد شما حاوی کد html نیز هست حتما باید از تگ پایان استفاده نمائید.

اضافه کردن توضیحات یا Comment به کدهای PHP خود :

هر کدی که بین تگ های باز و بسته PHP قرار گیرد ، به عنوان دستور اطلاق می شود و آن دستر پردازش می گردد ، مگر اینکه با استفاده از علامت گذاری های خاصی آن خط(ها) دستور را به توضیح (Comment) تبدیل نمائید ، که در این صورت کد مورد نظر پردازش نمی شود ، کامنت گذاری برای دستورات فایده های بسیار زیادی در راهنمایی داره :

  • برای قرار دادن یک توضیح کوتاه برای عملکرد قطعه کد خود
  • برای غیر فعال کردن موقت قسمتی از کد
  • برای مشخص کردن کاربرد متغیر ها و…

برای اضافه کردن توضیحات در PHP چند روش وجود دارد :

توضیحات تک خطی :

این روش متداول ترین روش اضافه کردن یک توضیح برای کد تک خطی است ، یعنی قرار دادن دو اسلش در ابتدای آن ، همانند این :

1//this is a comment
2 
3$book = ‘php’ ; //This is a variable

توضیحات چند خطی :

اما اگر توضیحی می خواهید استفاده کنید که چند خط را اشغال می کند با از روش زیر استفاده نمائید :

1/*
2This is
3a comment
4block
5*/

متغیر ها در PHP :

متغیر ها اسمی هستتند که به چیزی داده می شوند ، که ممکن است مقدار آن (همان چیز!) تغییر کند ولی همیشه نام متغیر یکی است ، مانند نام یک انسان ، کلمه نام همیشه یکی است ولی دارای مقادیر متفاوتی است مانند میلاد ، لقمان ، محمد و …

بهتر است برای درک مفهوم متغیر مثالی دیگر بزنم :

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

نکته: متغیر ها در زبان PHP همیشه با یک علامت $ شروع می شوند .

نمونه ای از تعریف متغیر :

1<?php
2$profile;
3$book;
4?>

نکاتی که باید در انتخاب و نام گذاری متغیر ها رعایت نمائید :

  • متغیر ها در php همیشه با علامت $ شروع می شوند.
  • اولین کاراکتر بعد از علامت $ نمی تواند یک عدد باشد.
  • هیچ فاصله یا علامتی در نامگذاری متغیر مجاز نیست به جز علامت (_).
  • زبان php به حروف بزرگ و کوچک حساس است یعنی بین $book و $BOOK تفاوت قائل است .

نکته : سعی کنید در انتخاب نام متغیر دقت نمائید ، شما وقتی برنامه را می نویسید و به نام متغیر ها توجه نمی کنید ، همان لحظه می دانید که چه کرده اید و متغیر هایی که ایجاد نموده اید ، برای چه کاری هستند ولی اگر همان برنامه را چند هفته دیگر دوباره مشاهده کنید ، به احتمال بسیار زیاد فراموش خواهید کرد که متغیر مورد نظر چه کاربردی دارد!؟

نکته : برای انتخاب نام یک متغیر ، شما آزادی کامل دارید ولی یک استثنا وجود دارد و ان هم نام $this است ، این نام متغیر از نسخه ۳ بعد زبان php یک نام رزرو شده است برای کلاس ها ، چون از نسخه ۳ به بعد php ، قابلیت شی گرایی به این زبان افزوده شد.

مثال زیر را مشاهده نمائید :

1<?php
2$sum=10;
3$average=20;
4$name='milad';
5?>

همانطور که قطعه کد فوق را مشاهده می نمائید ، در دستور اول ، در متغیر sum ، مقدار ۱۰ قرار میگیرد ، دستور دوم مقدار ۲۰ در average قرار میگیرد و در دستور سوم مقدار name برابر با نام میلاد می شود .

نکته : همانطور که در مثال بالا مشاهده نمودید ، برای مقدار دهی دو متغیر sum و average از علامت کوتیشن استفاده نکردم ولی برای مقدار دهی به متغیر name از کوتیشن استفاده کردم ، برای مقدار دهی یک کلمه ، یک حرف ، یک جمله یا بهتر بگویم یک رشته از کوتیشن استفاده می کنند.

خاتمه دادن به دستورات در php :

هر دستور در php با یک علامت (;) خاتمه می یابد ، همانطور که در کد های فوق ملاحظه کردید ، پس از تعریف متغیرها از علامت ; استفاده نمودیم.

نمایش خروجی در PHP :

تمام کارهایی که شما در پشت صحنه PHP انجام می دهید ، فقط وقتی معنی پیدا می کنند که بتوانید آنها را مشاهده نمائید ، دو روش برای نمایش نتایج در PHP وجود داره :

  • استفاده از دستور echo
  • استفاده از دستور  print

نکته :این دو دستور دقیقا کاربرد یکسانی دارند با این تفاوت که مقدار print ، مقادیر true و false بر می گرداند.

می توانید از echo به همراه متغیرها ، اعداد و رشته های متنی استفاده کنید ، طریقه استفاده این دستور به صورت زیر می باشد :

1<?php
2$name='milad';
3echo $name;
4echo 5;
5echo 'David';
6?>

در قطعه کد بالا ، ابتدا یک متغیر به نام name تعریف کرده ایم ، سپس این متغیر را چاپ نموده ایم ، همچنین می توان مقدار مستقیم برای چاپ در نظر گرفت مانند کد بالا.

وصل کردن رشته های متنی به یکدیگر :

php هم مانند زبان های برنامه نویسی دیگر ، دارای قابلیت الحاق کردن دو یا چند رشته را با یکدیگر دارد که برای اینکار از یک نقطه (.) استفاده می نماید :

1<?php
2$firstname='milad';
3$lastname='heydari';
4echo $firstname . $lastname; // output : miladheydari
5?>

همان طور که ملاحظه نمودید ، دو رشته را در دو متغیر جداگانه قرار دادیم ، ولی در بخش دستور echo از عملکرد الحاقی (.) استفاده نمودیم.

برای نمایش یک فاصله در خروجی (یعنی دو کلمه milad و heydari با فاصله چاپ شوند) می توانیم از کوتیشن استفاده نمائیم :

1<?php
2$firstname='milad';
3$lastname='heydari';
4echo $firstname . ' ' $lastname; // output : milad heydari
5?>

همانطور که ملاحظه نمودید ، متغیر firstname را با کوتیشن الحاق کرد و همچنین متغیر lastname را با کوتیشن الحاق نمود ، حال در خروجی ما بین دو کلمه یک فاصله چاپ می شود.

نکته مهم :حتما کد زیر را در پوشه xampp ایجاد کنید و خروجی آنها را مشاهده نمائید.

انواع داده پشتیبانی شده توسط PHP

انواع داده ها در PHP شامل بولین ، عدد صحیح ، عدد اعشاری ، رشته های متنی و آرایه ها می باشند.

بولین ( Boolean) :

این نوع داده ای فقط شامل دو مقدار می باشد (درست و غلط )یعنی TRUE و FALSE ، برای TRUE مقدار ۱ و برای FALSE مقدار ۰ در نظر گرفته شده است :

1</p>
2<p style="text-align: left;"><?php
3 $value = false; // is false
4 $value = 1; // is true
5 $value = -1; //is false
6 $value = 5; //is true
7 value = 0;  //is false
8 ?>
استثنا: برای با این که رشته ها باید در داخل کوتیشن قرار گیرند ، اما مقادیر true و false نباید در کوتیشن قرار گیرند ، همانطور که در کد بالا ملاحظه می نمائید مقدار false را در کوتیشن قرار نداده ایم ، اگر این مقادیر را در داخل کوتیشن قرار دهید ، آنها تبدیل به رشته false و true می شوند.

اعداد صحیح (Integer ) :

یک عدد صحیح به صورت یک عدد کامل نمایش داده می شود ، یا به عبارتی دیگر شامل هیچ قسمت اعشاری نیست مانند :

1<?php
2$value = 50;
3$book = 100;
4?>

اعداد اعشاری (Double) :

اعداد اعشاری دارای نقطه اعشار هستند ، که به شما اجازه می دهند قسمت کسری را مشخس نمائید :

1<?php
2$value = 2.5;
3$book = 5.75;
4?>

رشته های متنی (String) :

رشته های متنی می توانند حاوی یک کاراکتر ، یک کلمه یا یک جمله باشند که باید حتما آن ها را در داخل کوتیشن قرار داد:

1<?php
2$lname="heydari";
3$book="php";
4$email="yahoo";
5?>

آرایه ها (Arrays) :

اگر بخواهم در وصف آرایه بگویم ، آرایه مجموعه ای از متغیر های مربوط به یکدیگر است مثلا شما شهر تهران را یک آرایه در نظر بگیرید و مناطق ۲۲ گانه آن را مقادیر آرایه در نظر بگیرید.

آرایه ها در زبان php به ۳ صورت نوشته می شوند :

  • آرایه ایندکسی ( شاخص عددی)
1<?php
2$tehran = array('m1' , 'm2' , 'm3' , 'm4');
3?>

همانگونه که ملاحظه نمودید ، ما  آرایه را با ۴ مقدار تعریف کردیم  و هر کدام از این ۴ مقدار دارای یک ایندکس یا شماره هستند ، همچنین آرایه ایندکسی را به صورت شاخصی می توانید تعریف نمائید ، دقیقا کاربرد همان بالایی را دارد :

1<?php
2$tehran[0] = 'm1';
3$tehran[1] = 'm2';
4$tehran[2] = 'm3';
5$tehran[3] = 'm4';
6?>
  • آرایه شاخص رشته ای :

شما می توانید به جای شاخص گذاری عددی ، از رشته ای استفاده کنید به بدین صورت می باشد :

1<?php
2$ages['Peter'] = "32";
3$ages['Quagmire'] = "30";
4$ages['Joe'] = "34";
5 
6echo "Peter is " . $ages['Peter'] . " years old.";
7?>

در مثال بالا ، مثلا شاخص peter دارای مقدار ۳۲ است .

شاخص گذاری رشته ای را به گونه ی دیگری نیز می توانید تعریف نمائید :

1<?php
2$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
3?>

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

  • آرایه آرایه ها:

شما آرایه آرایه ها را همانند یک جعبه ای در نظر بگیرید  که درون آن تعداد زیادی پاکت وجود وجود دارد  ، این نوع آرایه را نیز می توانید به دو صورت تعریف نمائید :

  • نوع اول (شاخص گذاری عددی) :
1<?php
2$families = array
3(
4"Griffin"=>array
5(
6"Peter",
7"Lois",
8"Megan"
9),
10"Quagmire"=>array
11(
12"Glenn"
13),
14"Brown"=>array
15(
16"Cleveland",
17"Loretta",
18"Junior"
19)
20);
21?>

حال اگر بخواهیم یک مقدار مشخص را چاپ نمائیم ، اینگونه مشخص می نمائید :

1<?php
2echo "Is " . $families['Griffin'][2] ." a part of the Griffin family?";
3// OutPut : Is Megan a part of the Griffin family?
4?>
  • نوع دوم (شاخص گذاری رشته ای ) :
1<?php
2$image= array(
3array('file' => '1' , 'alt' => "milad"),
4array('file' => '2' , 'alt '=> "hossein"),
5array('file'=> '3' , 'alt'  => "ahmad"),
6array('file' => '4' , 'alt' => "reza"),
7array('file'=>'5' , 'alt'  => "not")
8);
9?>

در قسمت فوق ، یک آرایه به نام image تعریف کرده ایم که همان جعبه ما می باشد ، هر پاکت شامل دو بخش است یکی بخش file و دیگری بخش alt  قسمت آرایه آرایه ها در php کاربر بسیار زیادی دارد ، ان شاالله در بخش پروژه عملی ، مثال تصاویر تصادفی را خواهیم زد که از آرایه آرایه ها استفاده می شود. فی الحال از شما انتظار نمی رود که به کاربرد آرایه ها مسلط باشید ، فقط کافیست نحوه تعریف کردن آن ها را یاد گرفته باشد ، در قسمت های بعدی مثال های خواهیم زد که کاربرد های آرایه ها را درک خواهید کرد.

نکته ای قابل توجه برای استفاده از  کوتیشن ها :

در ابتدا قطعه کد زیر ملاحظه نمائید :

1<?php
2$book = 'this is milad's learn on the 7learn . ';
3?>

در نگاه اول که ملاحظه می نمائید ، مشکلی وجود ندارد اما php فکری دیگر می کند . همانطور که شما ملاحظه کردید ما از کوتیشن منفرد استفاده کرده ایم ولی بخش milad’s نیز دارای یک کوتیشن است ، php فقط تا کلمه milad’s را پردازش می کند و ادامه جمله را پردازش نمی کند:

qout آموزش PHP (بخش سوم) نوشتن اسکریپت های php

برای حل این مشکل می توانید یکی از راه های زیر را انتخاب نمائید :

1<?php
2$book = "this is milad's learn on the 7learn . ";
3 
4$book = 'this is milad\'s learn on the 7learn . ';
5?>

همانطور که ملاحظه نمودید ، ما قبل از آپستروف milad یک علامت \ (بک اسلش) استفاده کردیم ، پس در مواقع اینگونه می توانید از بک اسلش استفاده نمائید.

قلمرو متغیر :

با این که بهتر است متغیرهای مورد نیاز اسکریپت خود را در ابتدای برنامه خود معرفی کنید، اما می توانید آن ها را در هر جای اسکریپت خود معرفی نمائید ، مکان معرفی کردن یک متغیر ، تاثیر بسیار زیادی برای دسترسی به آن را دارد ، در این قسمت با محدوده یا قلمرو متغیر آشنا خواهیم شد .

متغیرها در php از لحاظ قلمرو ، چهار نوع هستند :

  • متغیرهای محلی (Local Variable)
  • پارامترهای تابع
  • متغیرهای عمومی (Global Variable)
  • متغیرهای استاتیک (Static Variable)

توضیحات قسمت قلمرو متغیرها را در بخش بعدی توضیح خواهم داد.

در قسمت بعدی با عملگردها در php آشنا خواهیم شد.

 

 

-آموزش PHP (بخش ششم) پیغام های خطا

 

در این بخش شما را با پیغام های خطا در PHP آشنا خواهیم ساخت. پیغام های خطا جزئی از یادگیری PHP هستند ، پس سعی کنید پیغام های خطا را یاد بگیرید تا بتوانید یک برنامه را به اصطلاح Debug نمائید.

هر پیغام خطا در زبان php از سه قسمت تشکیل شده است :

errorPHP آموزش PHP (بخش ششم) پیغام های خطا

همانطور که شکل فوق را مشاهده نمودید ، هر پیغام خطا از ۳ قسمت تشکیل شده است ، به عنوان مثال پیغام فوق را مشاهده نمائید ، خوب اگر شما تازه کار باشید فکر می کنید که این پیغام خطا در خط ۳ به وجود امده است و این پیغام شما را مجبور می کند که فقط خط ۳ را نگاه بکنید ولی اینگونه فکر کردن درباره نمایش پیغام خطا کاملا اشتباه است . PHP وقتی می گوید که مثلا پیغام خطا در خط ۳ به وجود امده است منظور این است که مشکل پیش آمده  قبل از خط ۳ می باشد (یعنی می تواند بین خطوط ۱ تا ۳ باشد) .

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

  • Fatal Error: این نوع خطا که بسیار جدی می باشد معمولا وقتی رخ می دهد که شما فایل یا تابعی را فراخوانی کرده اید که وجود نداشته باشد . مثلا کد زیر این نوع خطا را برای شما نمایش می دهد :
1<?php
2milad();
3?>

همانطور که ملاحظه نمودید ما یک تابعی را فراخوانی نمودیم که قبلا تعریف نشده است .

  • Recovable Error : این پیغام خطا زمانی رخ می دهد که استثنا خاص تولید شود که معمولا برای جلوگیری از این نوع خطاها ، کدها را در یک قطعه try و catch قرار می دهند که بعدا توضیح خواهیم داد.
  • Parse Error : این خطا وقتی رخ می دهد که اشتباه شما گرامری باشد مثلا اشتباه در نمایش دادن کوتیشن مانند قطعه کد زیر :
1<?php
2$milad = echo "milad's car";
3?>
  • Warning : این خطا، جدی ترین نوع خطاها می باشد مثلا یک فایل گم شده باشد ولی آنقدر شدید نیست که مانع از اجرای کدهای دیگر شود.
  • Deprecated : این نوع خطا از php نسخه ۵ به بعد ارائه شد ، و می توان گفت که این نوع به طور مستقیم یک پیغام خطا نیست بلکه نصیحت است ، یعنی به شما نصیحت می کند که بهتر است از این کد استفاده نکنید چون  اگر سرور شما در آینده اپدیت شود ، دیگر این کد کار نمی کند (در حقیقت کدهای منسوخ شده را به شما اطلاع می دهد).
  • Strict : این نوع خطا نیز همانند یک پیرمرد نصیحت دهنده عمل می کند و به شما اعلام می کند که شما تکنیک درستی را اعمال نکرده اید (به قول خودمون ، لقمه رو دور سرت نپیچ).
  • Notice : این نوع خطا اهمیت چندان زیادی ندارد ولی بهتر است انها را برطرف نمائید و اصلا باعث ایجاد اختلال در اجرای برنامه نمی شوند مثلا شما از متغیری استفاده نموده اید که از قبل اعلان نشده باشد .
1<?php
2echo $milad;
3?>

حال شما با انواع خطاها در php آشنا شدید ، حال وقت آن است که شما بتوانید اگر خطایی به وجود آمد آن ها را مدیریت کرده و چاره ای برای آنها بیندیشید :

اداره کردن استثناها :

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

تعریف یک Exception بدین گونه می باشد :

1<?php
2if (!is_dir($path) || !is_writable($path)) {
3throw new Exception (" $path must be a valid , writable directory . ");
4?>

در قطعه کد فوق مثلا ما گفته ایم که اگر path ما دارای آدرس نادرستی بود یا اینکه توجه کنید یا اینکه قابل خواندن نبود ، یک استثنا ایجاد نماید . اما ما اینجا فقط استثنا را ایجاد نمودیم اما برای مدیریت این استثنا باید از دستورات try و catch استفاده نمائید ، اما شاید تا به حال فکر کنید که این کار چه فایده ای دارد ؟؟؟ برای پاسخ به این سوال ، من یک سوال طرح می کنم و خودم هم جواب آن را خواهم داد:

فرض کنید یک فایلی گم شده است و صفحه مورد نظر به آن فایل احتیاج محض دارد ، حال اگر این صفحه باز شود یک خطای مرگ بار را نمایش می دهد و کاربری که این خطا را مشاهده می کند قطعا (شک نکنید!) از سایت شما فرار می کند ، حال شما باید چه کنید ؟؟؟

برای اینکار شما با استفاده از یک استثنا ، به موتور php دستور می دهید که قطعه اصلی کد شما را اجرا نکند و و قسمت تنها قطعه کد Catch را اداره کند که این قطعه کد می تواند هدایت کاربر به صفحه ای دیگر باشد.

تعریف try و catch :

1&lt;?php
2try {
3// کد های <a href='http://www.7learn.com' style="color:#333">پی اچ پی</a> شما
4} catch (Exception $e) {
5echo $e-&gt;getMessage();
6}
نکته : نام متغیر می تواند هر چیزی باشد ولی نام e یک استاندارد بین برنامه نویسان می باشد.
نکته :

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

-آموزش PHP (بخش هفتم) شرط ها و حلقه ها

 

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

شرط ها و حلقه ها بسیار کاربرد دارند .

شرط ها : شرط ها گاهی اوقات باعث تغییر مسیر برنامه می شوند ، شما هر اتفاق یا رویدادی را که در سیستم عامل خود مشاهده می کنید یک شرط است مثلا وقتی درایو E شما فضای کافی برای کپی یک فایل را نداشته باشد ، یک پیغام برای شما ظاهر می شود و می گوید که فضای کافی ندارید و این نیز یک شرط است .

دستور شرطی if :

زندگی بدون تصمیم گیری معنا و مفهومی ندارد ، PHP نیز اینگونه می باشد ، پرکاربردترین دستورات شرطی ، دستور if می باشد ، برای اینکه مفهوم شرط برای شما درک شود یک مثال می زنیم :

اگر (if)  هوا گرم شد ، من خانه می مانم

در زبان php شرط بدین صورت نوشته می شود :

1<?php
2if (it's hot) {
3I Will Stay Home;
4}
5?>

همانطور که مشاهده نمودید ، شرط ما داخل پرانتر قرار می گیردو اگر نتیجه درست بود ، شرط ما که بین براکت ها نوشته می شود اجرا میگردد :

1<?php
2if (اگر شرط true بود) {
3کدهای ما اجرا شود
4}
5?>
نکته : در زبان php همیشه و بعد از هر خط کد از علامت نقطه ویرگول (;) استفاده می شود ولی برای شرط ها از این علامت استفاده نمی شود .

کد های درون براکت ها تنها وقتی اجرا می شوند که شرط ما صحیح یا True باشد ، در غیر اینصورت شما می توانید کاری دیگر انجام دهید و یا از برنامه خارج شوید .

به مثال زیر توجه نمائید :

1<?php
2$i = 20;
3if($i >= 20){
4echo "salam!your login successfully!";
5}
6?>

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

بعضی وقت ها شما فقط به دستور if نیاز دارید و اگر هم شرط شما false شد برای شما اهمیت چندانی ندارد ولی گاهی اوقات در صورتی که شرط شما صحیح نبود باید یک کار دیگر انجام شود ، در این حالت از دستور if else استفاده می شود :

1<?php
2if (شرط شما)
3{
4;اگر شرط صحیح <strong>باشد</strong> ، این کد اجرا می شود
5}
6else
7{
8;اگر شرط صحیح <strong>نباشد</strong> ، این کد استفاده می شود
9}
10?>

به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5$d=date("D");
6if ($d=="Fri")
7{
8echo "Have a nice weekend!";
9}
10else
11{
12echo "Have a nice day!";
13}
14?>
15 
16</body>
17</html>

در قطعه کد بالا ، ما یک متغیر به نام d تعریف نموده ایم و با استفاده از تابع date ، روز کنونی را به متغیر d مقدار دهی کرده ایم ، حال در قسمت شرط ، شری قرار داده ایم که اگر روز کنونی برابر با جمعه (Fri) بود ، جمله Have a nice weekend را چاپ نماید واگر هم روز کنونی جمعه نبود ، جمله Have a nice day را چاپ نماید.

در حالت فوق ، هر دو شرط ارزیابی می شوند ، اما اگر بخواهید تنها  یک عامل انجام شود و شرط دوم بر مبنای شرط اول بررسی شود از یک elseif استفاده می شود :

1if (شرط شما)
2{
3اگر شرط اول صحیح باشد این کد ارزیابی می شود;
4}
5       elseif ( شرط دوم که در صورتی اجرا می شود که شرط اول صحیح نباشد )
6{
7کد مربوط به شرط دوم;
8}
9else
10{
11کد پیش فرض در صورتی که هیچکدام صحیح نباشند;
12}

به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5$d=date("D");
6if ($d=="Fri")
7{
8echo "Have a nice weekend!";
9}
10elseif ($d=="Sun")
11{
12echo "Have a nice Sunday!";
13}
14else
15{
16echo "Have a nice day!";
17}
18?>
19 
20</body>
21</html>

در قطعه کد بالا ، اگر روز کنونی ما Fri بود ، جمله Have a nice weekend چاپ می شود ، در صورتی که جمعه نبود شرط دوم چک می شود ، اگر روز کنونی برابر با Sun بود جمله Have a nice Sunday چاپ می شود و در غیر اینصورت جمله Have a nice day چاپ می شود.

نکته : دستور elseif را می توانید به صورت else if نیز تایپ نمائید

دستور شرطی Switch :

دستور switch که یکی دیگر از دستورات شرطی می باشد را می توانید یک حالت دیگر از if-else در نظر بگیرید که با استفاده از این دستور می توان یک متغیر را با شرط ها بسیار زیادی مقایسه نمود ، دستور switch اینگونه نوشته می شوند :

1<?php
2switch (n)
3{
4case label1:
5code to be executed if n=label1;
6break;
7case label2:
8code to be executed if n=label2;
9break;
10default:
11code to be executed if n is different from both label1 and label2;
12}
13?>

همانطور که قطعه کد بالا را مشاهده نمودید ، ما یک متغیر را با دستور switch مورد شرط قرار می دهیم (n) سپس با استفاده از دستور case یک مقدار جایگذاری می کنیم که اگر n برابر با label1 بود دستورات ما اجرا شود و سپس با استفاده از دستور break از شرط خارج می شود و به همین صورت می توانید دستورات شرطی خود را با استفاده از case قرار دهید و در آخر یک گزینه پیش فرض (Default) می توانید قرار دهید که اگر متغیر شما برابر با هیچکدام از شرط ها نبود ، اجرا شود.

به مثال زیر توجه فرمائید :

1<html>
2<body>
3 
4<?php
5$x=1;
6switch ($x)
7{
8case 1:
9echo "Number 1";
10break;
11case 2:
12echo "Number 2";
13break;
14case 3:
15echo "Number 3";
16break;
17default:
18echo "No number between 1 and 3";
19}
20?>
21 
22</body>
23</html>

در قطعه کد فوق ، یک متغیر با نام x و مقدار یک قرار داده ایم ، سپس متغیر را با دستور switch مورد سرط قرار داده ایم ، سپس متغیر را با مقادیر ۱ و ۲ و ۳ مقایسه نموده ایم و در دستور default نیز یک مقدار پیش فرض قرار داده ایم ، هم اکنون اگر شما کد فوق را در xampp اجرا نمائید ، در خروجی Number 1 چاپ می شود زیرا متغیر ما برابر با یک بود.

نکته :
  • عبارت بعد از کلمه کلیدی case حتما باید یک عدد یا یک رشته متنی باشد.
  • درون کلمه کلیدی case از عملگرها نمی توانید استفاده نمائید  مثلا case 100>200
  • اگر هیچ کدام از شروط صحیح نباشد ، دستور default اجرا می شود و اگر default نوشته نشده باشد ، دستور switch خیلی آروم و با آرامش خارج می شود.

حلقه ها در زبان php :

یک حلقه یا Loop قسمتی از یک کد می باشد که بارها و بارها اجرا میشود ، اگر بخواهم برای این بخش مثالی بزنم ، از یک سایت مثال خواهم زد :

شما حتما سایت ها را مشاهده نموده اید و یا اینکه شاید خودتان مدیر یک سایت هستید که زمانی که یک مطلب به سایت اضافه می شود ، مطلب جدید در بالای مطالب قبلی قرار می گیرد و پشت سر هم این امر تکرار می شود ، این عمل یک حلقه می باشد که پیاپی ادامه پیدا می کند و شما می توانید مطالب جدیدی به سایت خود اضافه نمائید .

تمامی حلقه ها دارای یک شمارنده هستند ، تا زمانی که حلقه مورد نظر ما به شمارنده نرسیده باشد ، یعنی از شمارنده کوچکتر باشد ، حلقه ما اجرا می شود.همچنین برای خواندن مقادیر یک آرایه از حلقه ها استفاده می نمائید.

نکته : معمولا در کد نویسی ، ترکیبی از شرط ها و حلقه ها استفاده می شود که این کار باعث انعطاف پذیری برنامه ما می شود.

حلقه while   :

حلقه while ساده ترین نوع حلقه می باشد (تا زمانی که) وطریقه نوشتن این حلقه بدین صورت می باشد :

1<?php
2while (تا وقتی شرط صحیح است)
3{
4دستورات حلقه;
5}
6?>

برای اینکه با کربرد while آشنا شوید به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5$i=1;
6while($i<=5)
7{
8echo "The number is " . $i . "<br />";
9$i++;
10}
11?>
12 
13</body>
14</html>

در مثال فوق ، ما یک متغیر i با مقدار ۱ تعریف نموده ایم ، سپس در قسمت while شرط گذاشته ایم که تا زمانی ادامه پیدا کند که متغیر ما (که برابر با یک می باشد) کوچکتر مساوی ۵ شود ، یعنی حلقه ما ۵ بار تکرار می شود ، سپس مفدار متغیر i چاپ شود و پس از چاپ یک مقدار به متغیر اضافه شود مثلا بعد از اینکه ۱ چاپ شد ، متغیر با ++ یک مقدار اضافه می شود سپس مجددا شرط برقرار می شود.

نکته : در قسمت های گذشته آموزش ، ما تاکید نمودیم که از نام های متغیر مفهموی استفاده نمائید که اگر دو هفته دیگر کد خود را مشاهده نمودید ف بدانید که متغیر مورد نظر شما برای چه کاری استفاده می شود ولی متغیر هایی همچون i و j و k به صورت قرار دادی بین برنامه نویسان برای شمارنده حلقه ها استفاده می شوند.
نکته : همانطور که کد فوق را مشاهده نمودید ، ما بعد از چاپ هر مقدار متغیر ، یک مقدار به متغیر اضافه نموده ایم ، اگر این کار انجام نمی دادیم ، شرط تا بی نهایت تکرار می شد .

حلقه do…while :

یک حالت دیگر حلقه while ، حلقه do…while می باشد ، که به جای اینکه شرط حلقه را در ابتدای حلقه بررسی کند ، در انتهای حبقه بررسی می نمائید :

1<?php
2do
3{
4کدی که باید اجرا شود;
5}
6while (شرطی که باید بررسی شود);
7?>
نکته : شاید از خودتان بپرسید که چرا اصلا از این دستور استفاده می شود ، چه فرقی می کند که شرط در ابتدای حلقه باشد و یا در انتهای حلقه ؟؟؟ در پاسخ به این سوال باید گفت که دقیقا تفوات این دو در این ابتدا و انتها می باشد ، در دستور while چون شرط در ابتدای حلقه ایجاد می گردد ، ممکن ست حلقه یک بار هم اجرا نشود ولی درحلقه do…while ، حلقه ما حداق یک بار اجرا می شود حتی اگر شرط ما هیچ وقت صحیح نباشد .

به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5$i=1000;
6do
7{
8echo "$i<br>";
9$i++;
10 
11}
12 
13while ($i<=100);
14?>
15 
16</body>
17</html>

در قطعه کد فوق ، متغیر ما برابر با ۱۰۰۰ می باشد ، ولی شرط ما گفته است که تا زمانی که متغیر ما کوچکتر مساوی ۱۰۰ باشد ، با این حال متغیر ما بسیار بزرگتر از شرط می باشد ولی شرط ما یک بار اجرا می گردد ، می توانید امتحان نمائید .

حلقه for :

این حلقه پر کاربرد ترین نوع حلقه ها می باشد ، حلقه for دارای تعداد تکرار مشخصی می باشد ، ساختار این حلقه بدین گونه می باشد :

1<?php
2for (شروع حلقه; شرط; کدی که بعد از هر بار تکرار ، اجرا می شود)
3{
4کدی که باید اجرا شود;
5}
6?>

به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5for ($i=1; $i<=5; $i++)
6{
7echo "The number is " . $i . "<br />";
8}
9?>
10 
11</body>
12</html>

در قطعه کد فوق ،نقطه شروع رو برابر با ۱ قرار داده ایم ، و شرط گذاشته ایم تا زمانی حلقه تکرار شوید که متغیر ما کوچکتر مساوی ۵ باشد و به ازای هر بار تکرار حلقه ، یک مقدار به متغیر i اضافه شود . (++). خروجی را حتما در xampp اجرا نمائید.

حلقه روی آرایه ها foreach :

نوع آخر حلقه ها در زبان php ، حلقه روی آرایه ها می باشد ، حلقه foreach به دو صورت کاربرد دارد :

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

1<?php
2foreach ($array as $value)
3{
4code to be executed;
5}
6?>

در قسمت فوق ، array نام آرایه و value نام متغیر موقت می باشد.

به مثال زیر توجه نمائید :

1<html>
2<body>
3 
4<?php
5$x=array("one","two","three");
6foreach ($x as $value)
7{
8echo $value . "<br />";
9}
10?>
11 
12</body>
13</html>

در قطعه کد فوق ، روی آرایه x یک حلقه را اجرا نموده ایم و نام هر عنصر در یک خط جداگانه برای ما به نمایش در خواهد آمد.

کاربرد دوم : ایجاد حلقه بر روی شاخص گذاری رشته ای:

از این نوع حلقه زمانی استفاده می شود که شما دارای یک آرایه همراه با شاخص رشته ای باشد زیرا به شما اجازه دسترسی به کلید و هم مقدار عنصر آرایه را می دهد:

1<?php
2foreach (array_name as key_variable => value_variable){
3دستورات شما
4}
5?>

به مثال زیر توجه نمائید :

1<?php
2$book['title'] = '7Learn .com with learn PHP';
3$book['author'] = 'loghman avand , Milad Heydari ';
4$book['publisher'] = '7Learn .com ';
5$book['ISBN'] = '7123=1-1234-1234-0';
6foreach($book as $key => $value){
7echo "the value of $key is $value<br>";
8}
9?>

در قطعه کد فوق ، یک حلقه بر روی آرایه book قرار داده ایم و مقدار key و value آن را چاپ می نمائیم.

نکته : کلمه کلیدی foreach باید سرهم نوشته شود و for each اشتباه می باشد.

-آموزش PHP (بخش هشتم) نکاتی قابل توجه برای تابع ها

 

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

تغییر نوع داده ها به صورت مستقیم در PHP :

همانطور که در بخش های پیشین گفته بودیم ، زبان PHP شامل چندین نوع ، نوع داده ای میباشد ، از قبیل : integer , string , object , array و… در این بخش قصد داریم پس از تعریف متغیر ، در هنگام نیاز ، نوع داده ای خود را با استفاده از تابع های از پیش آماده شده در زبان php تبدیل نمائیم.

داده ها در زبان php ، بسیار ساده هستند ، و البته هوشمند ، اما شاید از خودتان بپرسید چرا از کلمه هوشمند استفاده کردم ؟؟؟برای درک هوشمندی داده ها در php به مثال زیر توجه نمائید :

1<?php
2$result=50; // integer
3$string = "100"; // string
4echo $output = $result + $string;
5?></p>
6<p style="text-align: left;">

بعد از اجرا کردن کد فوق ، حتما خروجی را مشاهده نموده اید ، که برابر با ۱۵۰ می باشد ، اما چرا ۱۵۰ ؟؟؟

در قسمت اول کد فوق ، ما یک متغیر با مقدار ۵۰ تعریف نموده ایم و در خط دوم یک متغیر دیگر با مقدار رشته ۱۰۰ ، توجه کنید رشته ۱۰۰ تعریف نموده ایم (این متغیر در حال حاضر یک رشته محسوب می شود و یک عدد نیست!) و در خط آخر کد ، ما دو متغیر را با یکدیگر جمع نموده ایم ، سپس در یک متغیر قرار داده ایم و آن را چاپ کرده ایم.

اما نکته قابل اینجاست که در زمان جمع کردن دو متغیر ، php به صورت هوشمندانه تبدیل نوع را انجام می دهد و متغیر رشته ای ما را به یک integer تبدیل می کند.

حال به مثال زیر نیز توجه نمائید :

1<?php
2$result="7 learn"; // integer
3$string = 20; // string
4echo $output = $result + $string;
5?>

به نظر شما خروجی کد فوق چیست؟؟؟ در خط اول این کد ، ما یک متغیر با مقدار ۷ learn تعریف نموده ایم ، سپس یک متغیر دیگر با مقدار ۲۰ ایجاد نموده ایم اما وقتی که دو متغیر پس از اعمال جمع ، چاپ نموده ایم ، خروجی به ما ۲۷ نمایش داده است ، پس شاید تا به حال متوجه شده باشید که php از رشته صرف نظر نموده و فقط اعداد را با یکدیگر جمع می کند.

دریافت نوع داده ای یک متغیر :

اگر شما بخواهید بفهمید که یک متغیر از چه نوع داده ای می باشد ، و یا قصد دارید در یک شرط و حلقه ، مشخص کنید که متغیر شما اگر از نوع خاماصی بود کار خاصی را انج دهد، از تابع gettype استفاده می شود.

تابع gettype ، نوع متغیر مورد نظر شما را بر می گرداند ، که ۸ مقدار را از قبیل integer , boolean , double , object ,resource , string , unknown type بر می گرداند.

به مثال زیر توجه نمائید :

1<?php
2$result="7 learn"; // integer
3$string = 20; // string
4echo  gettype($string) . "<br>";
5echo  gettype($result) . "<br>";
6?>

در مثال فوق ، با استفاده از تابع gettype ، نوع متغیرهای ایجاد شده توسط ما را چاپ می نماید.

برای آشنایی بیشتر به مثال زیر نیز توجه نمائید :

1<?php
2 
3$data = array(1, 1., NULL, new stdClass, 'foo');
4 
5foreach ($data as $value) {
6echo gettype($value) . "<br>", "\n";
7}
8 
9?>

در قطعه کد فوق ، ما یک آرایه ، متشکل از چندین نوع ، نوع داده ای تعریف نموده ایم ، سپس با قرار دادن یک حلقه برای روی آرایه (foreach) و استفاده از تابع gettype نوع های مقادیر آرایه را بر می گردانیم .

تابع های تعیین کننده ی نوع داده ای :

حدود ۱۰ تابع در php وجود دارد که برای تعیین نوع یک متغیر به کار می روند :

  • is_array :مشخص کننده متغیری از نوع آرایه می باشد.
  • is_bool : مشخص می کند که آیا متغیر از نوع boolean هست یا خیر.
  • is_floot : مشخص می کند که آیا متغیر اعشاری است یا خیر.
  • is_integer : مشخص می کند که آیا متغیر از نوع صحیح است یا خیر.
  • is_null : مشخص می کند که آیا متغیر  از نوع تهی است یا خیر.
  • is_numeric : مشخص می کند که آیا متغیر از نوع عددی است یا خیر.
  • is_object : مشخص می کند که آیا متغیر یک شی است یا خیر.
  • is_resource : این تابع برای مشخص کردن وجود منبع می باشد .
  • is_scalar : مشخص می کند که آیا متغیر از نوع عددی است یا خیر.
  • is_string : مشخص می کند که آیا متغیر از نوع رشته ای است یا خیر.

مثال هایی برای تعیین کننده ی نوع متغیر :

1<?php
2$var=5;
3 
4if(is_null($var))
5echo 'null';
6if(is_string($var))
7echo 'string';
8if(is_array($var))
9echo 'array';
10if(is_int($var))
11echo 'integer';
12if(is_bool($var))
13echo 'boolean';
14if(is_float($var))
15echo 'float';
16 
17?>

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

یک مثال برای resource :

1<?php
2 
3$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
4if (!is_resource($db_link)) {
5die('Can\'t connect : ' . mysql_error());
6}
7 
8?>

در قطعه کد بالا ، ما از دیتابیس استفاده نموده ایم ، فعلا به کد اصلی کاری نخواهیم داشت ، در فصل های آینده کار با دیتابیس را خواهیم گفت ، ولی در خط دوم این قطعه کد ، ما یک شرط قرار داده ایم که اگر آدرس ویا اطلاعات دیتابیس ما غلط بود (با استفاده از is_resource) ، برنامه exit شود.

ثابت ها در php :

در ابتدا بهتر مفهوم ثابت را برای شما قابل درک نمائیم ، ثابت دقیقا کاربردی همانند یک متغیر را دارد ولی با این تفاوت که مقدار یک ثابت ، در طول برنامه ، به هیچ عنوان تغییر پیدا نمیکند و تنها مقدار اوایه خود را حفظ می نماید ، ثوابت در php بدین صورت تعریف می شوند:

1<?php
2define("milad",17);
3?>

ثابت ها در برنامه ها بسیار کاربردی هستند ، اگر بخواهیم یک مثال برای درک مفهوم ثوابت بزنیم ،  عدد پی یا ۳٫۱۴ بهترین مثال است :

1<?php
2define("PI",3.14);
3echo $result= 5 * PI;
4?>
نکته : برای تعریف یک ثابت از علامت $ استفاده نمی شود ، همچنین برای چاپ مقدار یک ثابت نیز از $ استفاده نمی شود.
نکته : بعد از اینکه یک ثابت را با مقدار اولیه تعریف نمودید ، در طی برنامه ، به هیچ عنوان نمی توانید مقدار آن را تغییر دهید.
نکته : ثابت ها همواره و به صورت Default در php به صورت Global یا عمومی تعریف می شوند ، و در کل برنامه قابل دسترسی هستند.

ان شاالله در قسمت بعدی آموزش ، شما را با نوشتن تابع ، تابع های بازگشتی ، و قلمرو متغیر ها آشنا خواهیم ساخت ،  قسمت بعدی آموزش ، قسمت پایانی بخش Basic آموزش php می باشد ، به امید خدا ، اولین پروژه کاربردی را از جلسه بعد شروع خواهیم کرد.

-آموزش PHP (بخش نهم) تعریف تابع و قلمرو متغیرها

 

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

تعریف یک تابع توسط شما :

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

یک مثال کلی برای درک مفهوم تعریف یک تابع :

فرض نمائید که شما با استفاده از یک گروه چند نفره ، قصد برنامه نویسی یک CMS را دارید ، شما برای این هماهنگی بین خود (گروه ۳ نفره شما) ایجاد کنید ، کار را تقسیم می کنید ، و هر بخش کد را یک نفر انجام می دهد ، پس تعریف یک تابع بسیار کاربردی می باشد.

Syntax تعریف تابع در PHP :

1function نام دلخواه شما()
2{
3کدی که مربوط به تابع می باشد;
4}
نکته : نام یک تابع نمیتواند با یک عدد شروع شود مانند ۱milad

مثال ۱ :

1<?php
2function writeName()
3{
4echo "milad heydari";
5}
6 
7echo "My name is ";
8writeName();
9?>

در قطعه کد فوق ، یک تابع به نام writeName تعریف نموده ایم ، سپس در بخش کد این تابع ، کلمه milad heydari را چاپ نموده ایم ، حال در بخش بعدی تابع را با استنفاده از نام آن و یک علامت پرانتر باز و بسته فراخوانی نموده ایم.

مثال ۲ :

1<?php
2function mySite(){
3echo "We deliver quantity, not quality!<br />";
4}
5echo "Welcome to 7learn.com <br />";
6mySite();
7echo "Well, thanks for stopping by! <br />";
8echo "and remember... <br />";
9mySite();
10?>

کد فوق نیز ، یک تابع با نام mySite تعریف نموده ایم و سپس آن را در برنامه فراخونی کرده ایم ، در ضمن حتما این دو کد را در xampp تست نمائید.

تعریف یک تابع همراه با پارامتر :

برای اضافه کردن قابلیت های بیشتر به تابع ، از پارامترها استفاده می شود ، این پارامتر ها دقیقا همانند یک متغیر هستند ، این پارامتر ها درون پرانتز باز و بسته ی تعریف تابع قرار می گیرند :

1function functionName(your parameter)
2{
3code to be executed;
4}

حال به مثال زیر توجه نمائید :

1<?php
2function writeName($fname)
3{
4echo $fname . " 7learn.<br />";
5}
6 
7echo "My name is ";
8writeName("milad");
9echo "My friend's name is ";
10writeName("loghman");
11echo "My brother's name is ";
12writeName("ahmad");
13?>

در قطعه کد فوق ، ما یک تابع به نام writeName با پارامتر fname تعریف نموده ایم ، حال در بخش کد این تابع ، کد چاپ نمودن پارامتر همراه کلمه ۷learn را قرار داده ایم.

سپس در بخش بیرونی تعریف تابع ، ما در ابتدا جمله My name is را چاپ نموده ایم ، و سپس تابع writeName را همراه با نام دلخواه فراخوانی نموده ایم ، پس تا به حال متوجه شده اید که ، متغیر fname برابر با milad قرار گرفته شد ، و این یعنی تابع با پارامتر.

نکته : متغیر های داخل تابع (پارامترها ) تبدیل به مقداری می شوند که شما در هنگام فراخوانی تابع ، آن ها را وارد نموده اید :
1<?php
2function add($x,$y)
3{
4$total=$x+$y;
5return $total;
6}
7 
8echo "1 + 16 = " . add(1,16);
9?>

در قطعه کد فوق ، یک تابع با نام add با دو پارامتر x و y تعریف نموده ایم ، سپس کد ، جمع دو پارامتر را قرار داده ایم و با دستور return مقدار را برگردانده ایم.

سپس در قسمت بیرونی تعریف تابع ، تابع را با دو مقدار ۱ و ۱۶ مقدار دهی کرده ایم ، سپس تابع ، این دو عدد را با یکدیگر جمع نموده ، و حاصل را بر می گرداند.

برای آشنایی بیشتر کد زیر را امتحان نمائید :

1<?php
2function writeName($fname,$punctuation)
3{
4echo $fname . " Refsnes" . $punctuation . "<br />";
5}
6 
7echo "My name is ";
8writeName("Kai Jim",".");
9echo "My sister's name is ";
10writeName("Hege","!");
11echo "My brother's name is ";
12writeName("Ståle","?");
13?>

حال که با نحوه تعریف تابع در PHP آشنا شدید ، بهتر شما را با قلمرو متغیر آشنا بسازیم:

قلمرو متغیر ها :

مکان معرفی کردن یک متغیر ، تاثیر بسیار زیادی بر روی دسترسی به متغیر دارد .

متغیرهای PHP دارای ۳ قلمرو می باشند :

۱) متغیرهای محلی :

با توجه به تعریف  قلمرو متغیر ، تعریف یک متغیر در داخل یک تابع با بیرون یک تابع تفاوت دارد ، برای درک این مساله قطعه کد زیر را مشاهده نمائید :

1<?php
2$x=20;
3function milad(){
4$x=10;
5echo "inside of function is $x" . "<br>";
6}
7milad();
8echo "out of function is $x";
9?>

به نظر شما ، خروجی کد فوق چیست؟؟؟ در کد فوق ، در ابتدا یک متغیر x با مقدار ۲۰ تعریف شده است ، سپس در داخل تابع milad یک متغیر با همان نام (x) با مقدار ۱۰ تعریف شده است (این دو متغیر با یکدیگر تفاوت دارد!) ، بعد از فراخونی  و چاپ متغیرها خروجی ها با یکدیگر تفاوت دارد ، متغیر x درون تابع یک متغیر محلی می باشد ، تغییر مقدار متغیر x محلی ، هیچ ارتباطی با متغیر x که دارای مقدار ۲۰ است ، ندارد .

۲)متغیرهای جهانی :

در مقابل متغیرهای محلی، متغیرهای جهانی وجود دارد ، که آنها را می توان در هرجایی از برنامه مورد استفاده قرار داد و آن آن را تغییر داد ، برای این که یک متغیر را به صورت جهانی تعریف نمائید ، از کلمه کلیدی global استفاده می کنیم .

به مثال زیر توجه نمائید :

1<?php
2$x=20;
3function add() {
4global $x;
5$x++;
6echo "x is $x";
7}
8add();
9?>

مقدار خروجی ما برابر با ۲۱ می باشد ، چون متغیر x را در کلمه کلیدی global قرار داده ایم ، اما اگر کلمه global را حذف نمائید ، خروجی برابر با یک می شود .

یک روش دیگر برای متغیر جهانی وجود دارد و آن هم استفاه از آرایه سوپرگلوبال GLOBALS می باشد :

1<?php
2$x=20;
3function add() {
4$GLOBALS['x']++;
5}
6add();
7echo "x is" . $GLOBALS['x'];
8?>
نکته : متغیرهای جهانی ، برنامه نویسی حرفه ای یا غیر حرفه ای نمی شناسد ، اکثرا باعث مشکلات زیادی برای آن ها می شود ، پس در استفاده از آنها دقت داشته باشید.

3) متغیرهای استاتیک :

این نوع متغیرها ، که از نام آن ها مشص است ، همیشه دارای مقدار یکسانی هستند ، و اگر هم از تابع خارج شوند ، مقدار خود را از دست نمی دهند. برای این که یک متغیر را به صورت استاتیک تعریف کنید از  کلمه کلیدی static استفاده می نمائیم:

1<?php
2function foo() {
3static $index = 0;
4$index++;
5echo "$index\n" . "<br>";
6}
7foo();
8foo();
9foo();
10?>

از خروجی کد فوق ، چه انتظاری دارید ، اگر متغیر ما به صورت static تعریف نشده بود ، خروجی ما برابر با مقدار پائین می شد :

۱

۱

۱

اما به دلیل اینکه متغیر را به صورت static تعریف نموده ایم ، خروجی می شود:

۱

۲

۳

این بخش نیز به پایان رسید ، ان شاالله در بخش های بعدی شروع به انجام پروژه های کاربردی خواهیم کرد.

 





ادامه مطلب ...

موضوع مطلب :

پیوندها
لوگو
در اینجا می توانید خبرهای داغ سیاسی فراجناحی را بخوانید...علیرضااحسانی نیا
آمار وبلاگ
  • بازدید امروز: 2915
  • بازدید دیروز: 3588
  • کل بازدیدها: 9453500