آموزش مقدماتی PHP

زبان برنامه‌نویسی php چیست؟

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

نکته: کدهای نوشته شده بسیار ساده و ابتدایی می‌باشند، برای ارتقای سطح خود بعد از مطالعه این آموزش حتما مطالعه و تحقیق بیشتری انجام دهید.

برای شروع کارمان ما به یک وب‌سرور (Apache)، پی اچ پی، دیتابیس (MySQL)، ویرایش‌گر متن (text editor) و یک مرورگر نیاز داریم. سه مورد اول را با نصب XAMPP خواهیم داشت.

می‌توانید xampp را با رفتن به این آدرس دانلود و نصب کنید، بعد از نصب آن را اجرا کنید سپس به آدرس زیر بروید، در این‌جا می توانید اطلاعات php خود را ببینید.
http://localhost/dashboard/phpinfo.php
phptutotial1

برای ویرایش‌گر متن می‌توانید از atom, visual studio code ,phpStorm و یا هر ویرایش‌گر متن یا IDE که دوست دارید استفاده کنید، من از intellij استفاده می‌کنم.

اگر می‌خواهید MySql را پیکربندی (config) کنید می‌توانید از آدرس http://localhost/phpmyadmin استفاده کنید و یا CMD خود را باز کنید و به آدرس C:\xampp\mysql\bin بروید و دستور mysql.exe –u root را تایپ کنید تاوارد mysql خود شوید.

بیاید شروع کنیم، من یک فایل php ساده می‌سازم و آن را اجرا می‌کنم، کد پی اچ پی با <? php?> آغاز و پایان می‌یابد، روش دیگری نیز وجود دارد که به آن ASP style <% %> ,<%= %> گفته ‌می‌شود پیشنهاد می‌کنم از این روش استفاده نکنید و به شکل معمول بنویسید .

خوب پوشه ای به نام codes در درایو c پوشه xampp پوشه htdocs می‌سازم داخل آن فایلی به نام index.php قرار می‌دهم و در آن کد زیر را می‌نویسم .

می‌بینید که یک کد را به دو صورت نوشتم، برای اینکه به شما نشان دهم php به فضاهای خالی اهمیت نمی‌دهد، پس می‌توانیم برای خواناتر شدن برنامه خود از آنها استفاده کنیم، هم چنین بعد از دستورات php باید علامت ; را قرار دهید .
حالا اگر در نوارآدرس مرورگر خود http://localhost/codes/ را تایپ کنید می‌بینید که صفحه phpinfo برای شما به نمایش در می‌آید .
در صفحات php می‌توان کد html نوشت، پس فایلی به نام helloWorld.php می‌سازم و کد زیر را در آن قرار می‌دهم، برای چاپ مقادیر یا نوشته‌ها در php از دستور echo استفاده می‌کنیم .

دوباره به آدرس قبلی می‌رویم با این تفاوت که این دفعه صفحه helloWorld.php را صدا می‌زنیم .
http://localhost/cods/helloWorld.php
مانند تصویر زیر باید Hello World! را مشاهده کنید .
phptutotial2
با استفاده از. نقطه می‌توانیم دو رشته را به هم بچسبانیم یا در اصطلاح کانکت کنیم.

در echo دوم می‌بینید که با استفاده از . دو کلمه hello و world را به هم چسباندیم. در echo اول هم مشاده می‌کنید در آخر تگ br را چاپ کردم تا به خط بعد برویم، حالا متوجه شدید که php می‌تواند تگ های html را نیز چاپ کند.
برای چاپ عداد نیز کافی است آنها را echo کنیم مانند کد زیر.

کامنت گذاری در php :

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

چرخه درخواست و پاسخ (request and response):

ما یک مرورگر و یک وب سرور داریم، مرورگر درخواستی به وب سرور ارسال می‌کند، مثلا درخواست سایت www.darkoobweb.com بعد Apache درخواست را می‌گیرد و می‌گوید: “بزار ببنیم فایل مورد نظر درخواست تورو پیدا می‌کنم یا نه”، به طور مثال نام فایل darkoobweb.php است Apache می‌گوید : “خوب فایل تو .php داره پس حتما کدهای php دخلش قرار داره که باید پروسس بشه”، در هنگام پروسس فایل شما ممکن است چند باری نیز به دیتابیس مراجعه کنیم، بستگی به کد شما دارد، بعد از پروسس آخرین مرحله ساخت کدهای html و پاس دادن آن‌ها به سمت کاربر می‌باشد.

phptutotial3

متغیرها و انواع آنها (Variables):

متغیرها با علامت $ شروع می‌شوند، با حروف و underscore ادامه پیدا میکنند. می توانند دارای حروف اعداد و خط زیر و دش باشند، به یاد داشته باشید متغییرها case-sensitive هستند. یعنی به بزرگی و کوچکی حروف حساس اند.
نمونه‌هایی از متغییر :

تمامی روشهای بالا درست است اما درنام گذاری متغییرها به صورت $this-variable و $__bookPage استفاده نکنید .
همچنین به صورت $_book نیز نام گذاری نکنید، چون در php متغییرهای مخصوصی وجود دارد که به این روش نام گذاری شده اند. از دیگرروش‌ها به صورت دلخواه استفاده کنید.
پیشنهاد می‌کنم تمام کدهایی را که با هم می‌نویسیم درون پوشه codes نگه دارید، اگر مایلید می‌توانید نام این پوشه را تغییر دهید.

بیاید چند متغییر باهم بسازیم، درون پوشه codes فایلی به نام variables.php می‌سازیم و درون آن کدهای زیر را می‌نویسیم.

در کد بالا می‌بینید که متغییری به نام $var1 را ایجاد کردم درون آن عدد 10 را قرار دادم سپس دوباره درون $var1 عدد 100 قرار دادم، همچنین متغییری به نام $Var1 با V بزرگ ایجاد کردم به یاد داشته باشید که $var1 و$Var1 با هم متفاوت هستند.

متغییرهای رشته‌ای Strings :

به کد بالا دقت کنید همان طور که می‌بینید از “” و ‘’ برای مشخص کردن رشته در PHP استفاده می‌کنیم،
در خط های اول می‌بنید که می‌توانیم تگهای html را چاپ کنیم، همچنین می‌توانیم، رشته‌ها را درون متغییر بریزیم سپس متغییرها را با هم جمع کرده (کانکت) کرده سپس چاپ کنیم.
اما تفاوت “ “ و ‘ ‘ در چیست؟ در داخل “ “ می‌توانیم متغییرها را قرار دهیم، در این صورت محتوای داخل متغییر چاپ می‌شود. اما در ‘ ‘ دقیقا همان نام متغییر چاپ می‌شود، حالا اگر بین متغییر و رشته فاصله قرار ندهیم php تمام آن را یه عنوان نام متغییر در نظر می‌گیرد مانند:
” Echo “$etesalDobare<br/>
برای رفع این مشکل متغییر را داخل {} قرار دهید، مانند مثال آخر سپس به آدرس http://localhost/codes/strings.php
بروید، باید مثال‌ها را مانند من ببینید.

phptutotial4

فانکشن های کار بارشته (Strings Functions):

فایلی به نام stringFunctions.php می‌سازیم، و کدهای زیر را درون آن می‌نویسیم . <!doctype html>

بریم سراغ فانکشن‌هایی که استفاده کرده‌ایم، strtolower() این فانکشن باعث می‌شود تمام حروف کوچک شوند.
Strtoupper این فانکشن باعث می‌شود تمام حروف بزرگ شوند.
Ucfirst این فانکشن باعث می‌شود اولین حرف کلمه اول بزرگ شود.
ucwords: این فانکشن باعث می‌شود تمام حروف اول کلمات بزرگ شوند.
strlen: این فانکشن طول رشته را به ما بر می‌گرداند.
trim: این فانکشن از اول و آخر رشته چیزهایی را که شما مشخص می‌کنید بر می‌دارد، در کد بالا دو مثال برای شما آورده شده است، در اولی فضای خالی از اول و آخر پاک می‌شود و در مثال دوم Sa از اول و id از آخر پاک می‌شود، هم چنین می توانید از rtrim , ltrim نیز استفاده کنید .
strstr: برای یافتن یک رشته از آن استفاده می‌کنیم .
str_replace : از این فانکشن برای جابجایی رشته استفاده می‌کنیم ، این فانکشن 3 پارامتر می‌گیرد اولی رشته‌ای که می‌خواهیم جایگزین شود، دومی رشته‌ای است که می‌خواهیم به جای آن رشته‌ی دیگری بیاید و سومی رشته‌ای که می‌خواهیم این اعمال در آن انجام شود.
str_repeat: این فانکشن رشته ما را هر بار که بخواهیم چاپ می‌کند، پارامتر اول رشته دلخواه و پارامتر دوم تعداد دفعات تکرار.
substr: این فانکشن رشته را می‌برد، اولین پارامتر رشته مورد نظر دومین پارامتر شروع برش و سومین پارامتر تعداد برش است، در این مثال از جایگاه 5 برش شروع می‌شود 10 کاراکتر به جلو می‌رود و عمل برش را انجام می‌دهد.
strpos: این فانکشن مکان رشته مورد نظر را برای ما برمی‌گرداند.
Strchr : این فانکشن کاراکتر مورد نظر را برای ما پیدا می‌کند.
و این هم، خروجی :

phptutotial5

اعداد Integer :

با اعداد صحیح (Integer) چگونه کار کنیم، به کد زیر دقت کنید:

دو متغییر داریم، در $var1 عدد 3 و در $var2 عدد 4 قرار دارد، درخط بعد معادله‌ای داریم، این معادله براساس اولویت انجام می‌شود، اول داخل پرانتز یعنی جمع 1+2+$var1 سپس ضرب در $var2 بعد از آن تقسیم به 2 و در آخر منهای 5.
Abs : این فانکشن قدر مطلق می‌گیرد و قدر مطلق 0-300 می‌شود 300.
Pow : این تابع توان است.
Sqrt : تابع جذر عدد را می‌گیرد.
Fmod : باقیمانده تقسیم را برمی‌گرداند.
Rand : یک عدد رندم به شما می‌دهد.
Rand(1,10) : یک عدد رندم بین 1 تا 10 می‌دهد.
می‌توانیم به جای $var1 = $var1+4 از $var1+=4 استفاده کنیم برای بقیه نیز به همین شکل و اما نکته، اگر یک رشته و یک عدد را با هم جمع کنیم php رشته را به عدد تبدیل می‌کند و عمل جمع انجام می‌شود.

phptutotial6

اعداد float :

برای کار با اعداد اعشاری به کد زیر دقت کنید:

یک متغییر به نام $float ساختم و در داخل آن عدد 3.14 را قرار می‌دهیم ،
Round : این فانکشن تعداد رقم اعشار عدد اعشاری شما را نمایش می‌دهد.
Ceil: این فانکشن عدد اعشاری را رو به پایین گرد می‌کند
Floor : این فانکشن عدد اعشاری را رو به بالا گرد می‌کند.
هم چنین در php فانکشنی داریم که مشخص می‌کند آیا عدد integer است یا float و این فانکشن ها is_int ، is_float هستند هم چنین فانکشنی داریم که مشخص می‌کند آیا عدد است یا نه is_numeric

phptutotial7

آرایه (Array):

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

همان طور که در مثال بالا می‌بیند برای تعریف آرایه از کلمه کلیدی آرایه استفاده می‌کنیم سپس داخل آن مقادیر خود را قرار می‌دهیم داخل یک آرایه حتی می‌توان یک آرایه دیگر داشت، به یاد داشته باشید شمارش خانه های آرایه از 0 شروع می‌شود، برای دسترسی به مقادیر آرایه دوم که در دل آرایه اول قرار دارد باید به این شکل عمل کنیم $mixd[3][1] آرایه‌ما در خانه سوم قرار دارد و می‌خواهیم به خانه با ایندکس یک از آرایه دوم دسترسی داشته باشیم.
برای اضافه کردن داده به آرایه کافیست شماره خانه را آورده و داده را در آن قرار دهیم اگر بخواهیم به انتهای یک آرایه مقداری اضافه کنیم و ندانیم آخرین شماره خانه چند است کافی است بنویسیم $mixd[] خود php مقدار مورد نظر ما را در آخر آرایه قرار می‌دهد.این هم برنامه بعد از اجرا:

phptutotial8

آرایه انجمنی یا (Associative Arrays):

من آرایه‌ای به نام $assoc دارم خیلی شبیه آرایه قبلی ما است اما می‌بینید که کلیدی به نام fitstName می‌سازم سپس با فلش مشخص می‌کنم که مقدار آن Pouria می‌باشد سپس کلیدی به نام lastName می‌سازم و با فلش مقدار آن را نیز مشخص می‌کنم برای دسترسی به مقادیر کافی است از نام کلید استفاده کنم، و اما مقادیر چاپ شده .

phptutotial9

فانکشن هایی برای کار با آرایه :

آرایه‌ای به نام $numbers ایجاد کردم که داخل آن اعدادی وجود دارد سپس از
Count برای شمارش مقادیر داخل آرایه از
Max برای پیدا کردن بزرگترین مقدار از
Min برای پیدا کردن کوچک ترین مقدار از
Sort برای مرتب کردن به صورت صعودی از
Rsort برا مرتب سازی نزولی از
Implode برای قرار دادن یک کاراکتر بین مقادیر از
Explode برای برداشتن رشته بین مقادیر از
In_array برای یافتن اینکه آیا مقدار مورد نظر در آرایه وجود دارد یا نه استفاده می‌کنیم.

phptutotial10

 

Boolean :

بولین می‌تواند دارای مقادیر true یا false باشد نه عدد است نه رشته فقط درست یا غلط به مثال زیر دقت کنید .

در مثال بالا دو مقدار دارم یکی را درست و دیگری را غلط مقدار دهی کردام، در هنگام چاپ نتایج، درست با 1 مشخص می‌شود، هم چنین فانکشنی مانند is_bool فقط مقدار بولین به ما بر می‌گرداند در مثال‌های پیشین نیز دیدی که is_numeric یا is_float نیز به ما مقدار بولین بر می‌گرداند.

مقدار null :

برای درک null بهتر است به کد زیر و خروجی کد ابتدا دقت کنید .

phptutotial11

همان طور که می‌بیند من دو مقدار دارم $var1 و $var2 در اولی null و در دومی ‘’ قرار دادم حال بیاید ببینم کدام null است، این کار را با فانکشن is_null انجام می‌دهیم، من اینجا var3 را نیز چک می‌کنم اما در واقع var3 وجود ندارد .
همان طور که در نتیجه می‌بیند var1 , var3 نال هستند، بیاید با فانکشن isset نیزآنها را چک کنیم، می‌بیند که var2 فقط مقداری برای آن set شده است و دو مقدار دیگر چیزی برای آنها وجود ندارد.
فانکشن دیگری نیز داریم به نام empty در php چیزهایی مثل ‘ ‘ ,null,0,0.0,’0’,false,array() همه گی خالی یا empty هستند و همان طور که در نتیجه می‌بیند همه متغییرهای من empty می‌باشند.
به بیان ساده‌تر null یعنی هیچ چیز ، حتی خالی هم نیست.

تبیدل تایپ‌های مختلف به یک دیگر (Type juggling and Casting):

به string ، integer و… تایپ می‌گوییم، برای تبدیل تایپ‌های مختلف راه‌های متفاوتی وجود دارد،

به کد بالا دقت کنید متغییر count ابتدا دارای مقدار رشته 2 می‌باشد با دستور gettype می‌توانیم ببینیم از چه نوعی است. در این‌جا نوع (type) آن استرینگ است، هنگامی که با 3 جمع می‌شود تاپ آن به integer تغییر می‌کند و هنگامی که با دو رشته کانکت می‌شود دوباره نوع آن string می‌شود.
به کاری که انجام دادیم type juggling می‌گوییند. به مثال‌های بعدی دقت کنید تایپ count هنوز string است، می‌توانم با settype تایپ آن را به integer تغییر دهم همان طور که در کد می‌بینید settype($count,’integer’) یا آن را دوباره به رشته بر گردانم و در count2 قرار دهم .
دو متغییر دیگر به نام‌های test1 و test2 می‌سازیم. داخل هر دوی آنها عدد 3 را قرار می‌دهیم، سپس با استفاده از type casting تلاش می کنم تایپ آنها را یه رشته تغییر دهیم، اگر به تصویری که در پایین وجود دارد دقت کنید می‌بینید فقط نوع test1 به string تغییر کرده است، اما چرا؟ چون اگر از روش دوم type casting برای تغییر تایپ یک متغییر استفاده کنیم، باید آن را در داخل متغییر دیگری یا داخل خودش بریزیم .
phptutotial12

ثابت‌ها Constants :

برخلاف متغییرها ثابت‌ها (constant) مقداری را می‌گیرند و هیچ گاه اجازه نمی‌دهند آن مقدار تغییر کند.

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

خطایی که می‌گوید: شما نمی‌توانید مقدار ثابت را تغییر دهید. همچنین با خطایی که می‌گوید: چنین ثابتی یک بار تعریف شده است و شما نمی‌توانید آن را دوباره تعریف کنید.

 

عملگرهای مقایسه‌ای comparison Operators :

عملگرهای مقایسه‌ای عبارتند از :
== برابر
=== یکسان بودن
اما فرق برابر (مساوی) با علامت یک‎سان بودن چیست؟ در هنگام مقایسه با برابر فقط چک می‌شود مقدار متغییرها یا مقدار داده‌ها مانند هم باشند. اما در یکسان نوع آنها نیز چک می‌شود تا از یک نوع باشند.
< بزرگتر
>کوچکتر
=< بزرگتر مساوی
=>کوچکتر مساوی
<> مخالف
=! نا برابر
==! نا برابر
عملگرهای منطقی :
&& و
|| یا
! نه ، نیست
به مسال زیر دقت کنید :

در مثال بالا گفتیم اگر a بزرگتر از b و c مخالف d است چاپ کن …. وقتی از && استفاده می‌کنیم دو طرف شرط باید درست باشد، یعنی هم باید a بزرگتر از b باشد و هم c مخالف d تا نوشته ما چاپ شود اگر یکی از این دو غلط باشد، شرط غلط می‌شود و دیگر متن ما چاپ نمی‌شود اما در || اگر یک طرف این شرط درست باشد یعنی شرط درست است و نوشته ما چاپ می‌شود.
در واقع در (و &&) :
True && true = true
True && false = false
False && true = false
False && false = false
اما در (یا ||):
True || true = true
True || false = true
Fasle || true = true
False || fasle = false

If Statements :

از if برای چک کردن درست یا غلط بودن یک شرط استفاده می‌کنیم .
ممکن است بخواهیم بگویم اگر متغییر a بزرگتر از b بود کار خاصی را انجام شود، در غیر این صورت اگر a کوچکتر از b بود کار دیگری انجام شود، در غیر این صورت فعالیت دیگری انجام شود، اما چگونه برای این کار از دستور if استفاده می‌کنیم .

همان طور که می‌بینید دو متغییر به نام‌های a و b داریم داخل آنها 4 و 3 قرار گرفته است حالا شرط if را می‌نویسیم، برای این کار از کلمه کلیدی if استفاده می‌کینم سپس داخل پرانتز شرط خود را بیان می‌کنیم. در اینجا اگر a>b باشد سپس در داخل براکت کارهایی را که می‌خواهیم اگر شرط برقرار است انجام شود قرار می‌دهم سپس از elseif (در غیراین صورت اگر) استفاده می‌کنیم و می گوییم در غیر این صورت اگر a<b بود چاپ کن a kochekta az b ast و در آخر از else به تنهایی (در غیر این صورت) استفاده می‌کنیم و می‌گویم در غیر این صورت چاپ کن a برابر b است.
در مثال دوم نیز دو متغییر داریم که می‌خواهیم آنها را با هم تقسیم کنیم ابتدا متغییر دوم را با دستور if چک می‌کنیم اگر بزرگ تراز 0 بود تقسیم را انجام می‌دهیم در غیر این صورت چاپ می‌کنیم شما نمی‌ توانید تقسیم را انجام دهید.

 

Switch statement :

برای نوشتن سویچ از کلمه کلیدی switch استفاده می‌کنیم سپس داخل پرانتز داده‌ه یا متغییری را می‌نویسیم، که می‌خواهیم موقعیت‌های مختلف (case) را روی آن تست کنیم. سپس با استفاده از کلمه کلیدی case شروع به تست آن می‌کنیم .

در مثال بالا می‌بینید که از break استفاده کردیم اما چرا ؟ یک کیس بررسی می‌شود اگر درست باشد متنی چاپ می‌شود، و دیگر لازم نسیت بقیه کیس‌ها را چک کنیم برای همین من از break استفاده می‌کنم تا هر کدام از کیس‌ها که درست بود بقیه کیس‌ها چک نشوند.

در اینجا کیس 3 متنی را چاپ می‌کند و دیگر به defult نمی‌رویم .
دیفالت نیز برای زمانی است که هیچ کدام از کیس‌های ما اجرا نمی‌شوند، فرض کنید a به جای 3 ، 4 بود آن وقت defult متن خودش را چاپ می‌کرد.

در این مثال می‌بینید اگربخواهیم دو case یک کار را انجام دهند، در اینجا چاپ یک رشته کافی است دو case را پشت سرهم بنویسیم، درمثال بالا اگر متغییر userType مشتری یا پلیس باشد با پیغام سلام مشتری مواجه خواهد شد.

While loops :

برای ساخت یک حلقه while به کلمه کلیدی while یک شرط و یک شمارنده نیاز داریم. به مثال زیر توجه کنید فرض کنید می‌خواهم از 0 تا 10 را چاپ کنم برای این کار

در مثال بالا می‌بینید شمارنده‌ای به نام count ساختم و داخل آن عدد صفر را قرار دادم کلمه کلیدی while سپس داخل پرانتز شرط را قرار دادم تا زمانی که شرط درست باشد مقدار count چاپ می‌شود سپس یک واحد به count اضافه می‌شود دوباره شرط چک می‌شود و اگر درست بود دستورات اجرا می‌شوند این روند تا زمانی که شرط برقرار باشید ادامه خواهد داشت و خروجی 0,1,2,3,4,5,6,7,8,9,10 خواهد بود.

For loop :

بسیار شبیه while است، ابتدا کلمه کلیدی for سپس داخل پرانتز ابتدا یک شمارنده می‌سازیم سپس شرط را می‌نویسیم بعد از آن مشخص می‌کنیم به شمارنده چه مقداری اضافه یا کم شود.

در مثال بالا می‌بینید که ابتدا همان حلقه while قبلی را با for نوشتیم و در for دوم عداد ذوج و فرد بین 20 تا 0 را مشخص کردیم .

phptutotial13
Foreach loop :

این حلقه با دو حلقه دیگر متفاوت است، فرض کنید یک آرایه داریم و می‌خواهیم داده‌های این آرایه را نمایش دهیم، برای استفاده از این حلقه ابتدا کلمه کلیدی foreach سپس در داخل پرانتز نام آرایه که می‌خواهیم آن را در حلقه قرار دهیم سپس کلمه کلیدی as و یک متغییر ایجاد می‌کنیم.

اتفاقی که می‌افتد این است هر بار که آرایه در حلقه قرار می‌گیرید، تک تک داده‌های آرایه یک بار به متغییر ما اختصاص داده می‌شود .

تعریف فانکشن defining function :

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

مقادیر بازگشتی از فانکشن Return:

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

متغییرهای محلی و سراسری Global and Local Scope :

متغییرهایی که در داخل فانکشن نوشته می‎شوند را متغییر محلی و متغییرهایی که خارج از آن هستند را سراسری گویند .

اگر مثال بالا را اجرا کنید می‎بینید که فقط outside چاپ می‎شود و به متغییر محلی که داخل فانکشن است دست‌رسی نداریم. همچنین با فراخوانی فانکشن مقدار متغییر سراسری نیز تغییر نمی‌کند .
برای دسترسی به مقدار متغییر سراسری می‌توانیم داخل فانکشن عبارت global $anar را بنویسیم، در این صورت بعد از اجرای کد می‌بینید که بعد از فراخوانی فانکشن مقدار 2 به inside تغییر پیدا می‌کند.
تا اینجا آموختیم چگونه فانکشن ایجاد کنیم به آن مقدار ورودی دهیم از آن خروجی بگیریم و آن را صدا کنیم.

حال فرض کنید فانکشن مورد نظر نیاز به ورودی داشته باشد، اما در زمان فراخوانی فانکشن کاربر فراموش کند مقادیر یا مقدار ورودی را وارد کند، در این صورت با خطا مواجه خواهیم شد برای رفع این مشکل به پارامترهای ورودی مقدار پیشفرض می‌دهیم به مثال زیر توجه کنید :

در کد بالا اگر فانکش paint بدون ورودی فراخوانی شود، مانند echo اول مقادیر office برای room و مقدار red برای color انتخاب می‌شود.

پیشنهاد می‌کنم این مقالات هم بخوانید

3 پاسخ

  1. سلام من xamp رو نصب کردم و به ادرس localhost رفتم ولی این ارور رو میده
    The resource you are looking for has been removed, had its name changed, or is temporarily unavailable

    1. سلام پریسا عزیز
      اگر آپاچه را اجرا کردید و به آدرس localhsot رفتید، با این خطا روبه رو شده اید، احتمالا نرم افزاری مانند IIS و … پرت را اشغال کردند
      روی دکمه config روبه روی Apache کلیک کنید، سپس به Apache (httpd.conf) برید، در اونجا بگردید به دنبال Listen 80 بگردید و به Listen 8080 یا هر پورت دیگری که می خواهید تغییرش دهید.
      این هم چند لینک از افرادی که مشکلی مانند شما داشتند.
      https://stackoverflow.com/questions/35512009/cant-connect-to-phpmyadmin-or-localhost
      https://stackoverflow.com/questions/36098643/phpmyadmin-error-404-0-with-xampp
      https://stackoverflow.com/questions/8574332/how-to-change-port-number-for-apache-in-wamp

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

۱ ستاره۲ ستاره۳ ستاره۴ ستاره۵ ستاره
(ستاره دهید)
Loading...
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on facebook