PDA

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



Sabo3eur
29th June 2011, 10:12 PM
ر این درس خواهیم خواند :
- نحوه ساخت ، بارگذاری و اجرای یک فایل PHP
- چگونه از PHP و HTML در یک صفحه استفاده کنیم
- چگونه کدها را با استفاده از کامنتهای برنامه نویسی قابل فهم تر کنیم

خوب برای شروع یک TextEditor رو باز کنید. php هم مانند html مبتنی بر متن ساده است بنابراین از هر ادیتوری میشود برای ساخت فایل php استفاده کرد. مثلا Notepad خود را باز کنید.
خطوط زیر را وارد کنید و فایل را به هر اسمی با پسوند .php ذخیره کنید. مثلا first.php
Code:
1: <?
2: print "Hello Web!";
3: ?>
در صورتیکه php روی کامپیوتر خود نصب کرده اید ، فایل رو در وب سرور خود کپی کنید و آن را از طریق browser صدا کنید. و یا اینکه فایل رو در یک سایت با دسترسی PHP بارگذاری نمایید و آدرس آن را در browser تایپ کنید.
پس از اجرای فایل جمله Hello Web! رو بر روی صفحه خواهید دید.
در صورتیکه کدها خود را یعنی هما چیزی که در ادیتور تایپ کردید رو روی صفحه دیدید. این بدان معنی است که وب سرور شما فایل php رو اجرا نکرده (یا php بر روی آن نصب نیست و یا پسوند فایل رو به درستی انتخاب نکرده اید.)

خوب حالا که صفحه اول php خود را upload کرده اید کمی در آن دقت کنید.
در شروع و در اولین خط کد Code:
<?
رو داريم. هميشه شروع يك كد php باید با همین تگ ها باشد. در غیر اینصورت سیستم با کدها مثل html رفتار میکند و بدون هیچگونه عملیاتی همان متن کد را نمایش خواهد داد.
و در انتهای کد PHP نیز حتما باید Code:
?>
را وارد کنید که به server می فهماند که کد php اینجا تمام شده است و از این به بعد با کدهای html روبرو است.
در انتهای هر خط از کدها باید از Code:
;
استفاده شود. در غیر اینصورت سرور کدها را در یک خط و پشت سر هم تشخیص می دهد. پس شما می توانستید کد بالا را در یک خط و به صورت
Code:
<? Print "Hello Word!" ; ?>
نیز بنویسید.

آموزش Php - قسمت دوم - متغیرها
در این درس می خوانیم :



- درباره متغیرها ( متغیر چیست و چگونه از آن استفاده کنیم)

- چگونه یک متغیر را تعریف کنیم و به مقدار آن دسترسی پیدا کنیم

- برخی از علمگرهای متداول

- چگونگی تعریف و استفاده از مقادیر ثابت



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

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

Code:
$a;
$a_longish_variable_name;
$2453;
$sleepyZZZZ</pre>

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

برای مقدار دادن به متغیر کافیست که آن را مساوی با مقدارش قرار دهید. به
طور معمول شما در یک دستور php متغیر را تعریف می کنید و به آن مقدار می
دهید. مانند کدهای زیر :

Code:
$num1 = 8;
$num2 = 23;</pre>

وقتی که شما به ییک متغیر مقدار دادید می توانید دقیقا مانند یک کاراکتر با آن رفتار کنید. به طور مثال :

Code:
print $num1;</pre>

دقیقا برابر با دستور

Code:
print 8;</pre>

می باشد.



نوع داده داخل متغیر DATA TYPE



انواع مختلف اطلاعات در یک متغیر می تواند ذخیره شود که در طول برنامه می توانید رفتارهای متفاوتی با آن نماببد.

برخی زبانهای برنامه نویسی شما را وادار می کنند که در ابتدا و در موقع تعریف متغیر نوع آن را نیز مشخص نمایید.

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



Type - Example - Description

Integer - 5 - A whole number

Double - 3.234 - A floating-point number

String - "hello" - A collection of characters

Boolean - true - One of the special values true or false

آرایه و OBJECT



جدول فوق انواع داده ها را نشان می دهد.

شما می توانید از دستور gettype() برای مشاهده نوع یک متغیر استفاده کنید. به عنوان مثال :

Code:
1: <html>
2: <head>
3: <title>Listing 4.3 Testing the type of a variable</title>
4: </head>
5: <body>
6: <?php
7: $testing = 5;
8: print gettype( $testing ); // integer
9: print "<br>";
10: $testing = "five";
11: print gettype( $testing ); // string
12: print("<br>");
13: $testing = 5.0;
14: print gettype( $testing ); // double
15: print("<br>");
16: $testing = true;
17: print gettype( $testing ); // boolean
18: print "<br>";
19: ?>
20: </body>
21: </html></pre>

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

Code:
integer
string
double
boolean</pre>

INTEGER یک عدد صحیح می باشد. به کلام ساده یک عدد بدون ممیز می
باشد. STRING یک سری کاراکتر می باشد. وقتی در PHP با STRING کار می کنید
باید حتما اطراف آن از " و یا ' استفاده شود. DOUBLE یک عددی است که ممیز
نیز دارد. BOOLEAN یا TRUE است و یا FALSE.



تغییر با استفاده از دستور settype()

در PHP با استفاده از دستور settype() شما می توانید نوع یک متغیر را تغییر
دهید. برای این کار باید نام متغیر و نوع متغیر که می خواهید به آن تغییر
یابد را در بین پرانتز و با فاصله یک کاما در بینشان مشخص نمایید.

به عنوان مثال :

Code:
1: <html>
2: <head>
3: <title>Listing 4.5 Changing the type of a variable with settype()</title>
4: </head>
5: <body>
6: <?php
7: $undecided = 3.14;
8: print gettype( $undecided ); // double
9: print " -- $undecided<br>"; // 3.14
10: settype( $undecided, string );
11: print gettype( $undecided ); // string
12: print " -- $undecided<br>"; // 3.14
13: settype( $undecided, integer );
14: print gettype( $undecided ); // integer
15: print " -- $undecided<br>"; // 3
16: settype( $undecided, double );
17: print gettype( $undecided ); // double
18: print " -- $undecided<br>"; // 3.0
19: settype( $undecided, boolean );
20: print gettype( $undecided ); // boolean
21: print " -- $undecided<br>"; // 1
22: ?>
23: </body>
24: </html></pre>

در هر دفعه تغییر متغیر ما با استفاده از دستور GETTYPE() نوع متغیر را چاپ می کنیم که از تغییر آن مطمئن شویم.

همانطور که می بینید در خط 7 مقدار متغیر 3.14 است و به صورت DOUBLE و در
خط 10 به STRING تبدیل می شود و در خط 13 به INTEGER تغییر می کند و به 3
تبدیل می شود. (یعنی رند می شود) و به همین صورت......



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



با قرار دادن نام نوع داده Data Type در داخل پرانتز و قبل از نام متغیر یک
کپی از متغیر با نوع داده جدید بدون تغییر دادن متغیر اصلی ایجاد می کند.

به عنوان مثال :

Code:
1: <html>
2: <head>
3: <title>Listing 4.6 Casting a variable</title>
4: </head>
5: <body>
6: <?php
7: $undecided = 3.14;
8: $holder = ( double ) $undecided;
9: print gettype( $holder ) ; // double
10: print " -- $holder<br>"; // 3.14
11: $holder = ( string ) $undecided;
12: print gettype( $holder ); // string
13: print " -- $holder<br>"; // 3.14
14: $holder = ( integer ) $undecided;
15: print gettype( $holder ); // integer
16: print " -- $holder<br>"; // 3
17: $holder = ( double ) $undecided;
18: print gettype( $holder ); // double
19: print " -- $holder<br>"; // 3.14
20: $holder = ( boolean ) $undecided;
21: print gettype( $holder ); // boolean
22: print " -- $holder<br>"; // 1
23: ?>
18: print gettype( $holder ); // double
19: print " -- $holder<br>"; // 3.14
20: $holder = ( boolean ) $undecided;
21: print gettype( $holder ); // boolean
22: print " -- $holder<br>"; // 1
23: ?></pre>

در کد بالا هیچ وقت نوع متغیر اصلی را تغییر ندادیم بلکه مثلا در خط
14 در متغیر $holder مقدار Integer شده متغیر اصلی یعنی مقدار 3 را قرار
دادیم در خط 16 آن را چاپ کردیم.

آموزش php - قسمت سوم - عملگرها
عملگرها :



در درس های قبلی یاد گرفتیم که مقدار به متغیر بدهیم و data type متغیر ها
رو تغییر بدهیم. یک زبان برنامه نویسی تا وقتی که نتونیم به وسیله اون بر
روی متغیرها عملیات ریاضی انجام بدیم در واقع به درد نمی خوره.

عملگرها سمبول هایی هستند که به وسیله اون می تونیم با استفاده از چند مقدار ، مقدار جدیدی رو تولید کنیم.

یک عملگر به عنوان مثال همون + است.

4 + 5 = 9

در اینجا ما از عملگر + استفاده کردیم تا با استفاده از دو مقدار 4 و 5 مقدار جدید 9 را تولید کنیم.



عملگر مقدار ده یا همون ( = ) کارش اینه که مقدار سمت راست خودش رو توی متغیر سمت چپ می ریزه.

PHP Code:
<code style="white-space: nowrap;">
<code>
print ( $name = "matt" );



</code>
</code>
دستور بالا کلمه matt رو چاپ می کند و همچنین متغیر name رو مساوی matt قرار می دهد.



عملگرهای ریاضی :

PHP Code:
<code style="white-space: nowrap;">
<code>
عملگر - نام - مثال - جواب

+ اضافه 3+5 8

- تفریق 3-10 7

/ تقسیم 2/10 5

* ضرب 10*2 20

% قدرمطلق 3%10 1



</code>
</code>
عملگر پیوند دهنده یا همان ( . )

این عملگر وظیفه پیوند دادن متغیر های متنی رو دارد.

به عنوان مثال :

PHP Code:
<code style="white-space: nowrap;">
<code>
"hello"." world"

returns

"hello world"



</code>
</code>
در php یک سری عملگرهای دیگه ای برای مقدار دهی دارد.



+= عملگری است که با استفاده از اون متغیر با خودش جمع می شود.

مثلا

PHP Code:
<code style="white-space: nowrap;">
<code>
$x = 4;

$x += 4; // $x now equals 8



</code>
</code>
همچنین -= و /= نیز می توان استفاده نمود.

PHP Code:
<code style="white-space: nowrap;">
<code>
$x = 4;

$x -= 4; // $x now equals 1



</code>
</code>
عملگرهای مقایسه ای



عملگرهای مقایسه ای بر روی متغیرها اعمال می شود و مقایسه می کند و در صورت درست بودن True و در صورت غلط بودن False بر می گرداند.

مثلا

PHP Code:
<code style="white-space: nowrap;">
<code>
$x < 5



</code>
</code>
اگر مقدار x مثلا 3 باشد این عملگر True رو برمی گرداند.

مثلا == مقدار سمت راست و سمت چپ رو چک می کند. اگه مثلا ما x رو 4 قرار داده باشیم.

PHP Code:
<code style="white-space: nowrap;">
<code>
$x == 5



</code>
</code>
مقدار False بر می گرداند.

!= چک می کند که مقدار سمت راست و چپ برابر نباشند و اگر x همان 4 باشد :

PHP Code:
<code style="white-space: nowrap;">
<code>
$x =! 5



</code>
</code>
True را بر می گرداند.

=== چک می کند که مقدار چپ و راست برابر باشند و همچنین نوع دیتا آنها Data type آنها یکی باشد.

علامت بزرگتر و کوچکتر و بزرگتر مساوی و کوچکتر مساوی نیز به همین صورت.



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

اولین عملگر منطقی همان عملگر or (یا) می باشد. دیگر نشانه این عملگر || می باشد.

مثلا
PHP Code:
<code style="white-space: nowrap;">
<code>
true || false



</code>
</code>
مقدار True را بر می گرداند.

&& فقط وقتی True برمی گرداند که هر دو طرف True باشند.

مثلا

PHP Code:
<code style="white-space: nowrap;">
<code>
( $x > 2 ) && ( $x < 15 )



</code>
</code>
هنگامی مقدار True برمی گرداند که x بزرگتر از 2 و کوچکتر از 15 باشد.

nload="NcodeImageResizer.createOn(this);" border="0">



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



عملگر ++ و --



عملگر ++ یک عدد به متغیر اضافه می کند و -- یک متغیر از آن کم می کند.

مثلا

PHP Code:
<code style="white-space: nowrap;">
<code>
$x++;



</code>
</code>
یکی به $x اضافه می کند.

به عنوان مثال

PHP Code:
<code style="white-space: nowrap;">
<code>
$x = 3;

$x++ < 4; // true



</code>
</code>
مقدار فوق True است.

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

حال :

PHP Code:
<code style="white-space: nowrap;">
<code>
$x = 3;

++$x < 4; // false



</code>
</code>
مقدار فوق False می باشد یعنی ابتدا جمع صورت گرفته و بعد مقایسه شده است.



ترتیب اجرای عملگرها

شاید همه شما این را بدانید ولی در php ترتیب اجرای عملگرها به صورت زیر می باشند :

PHP Code:
<code style="white-space: nowrap;">
<code>
++ − − (cast)

/ *%

+ −

< <= => >

== === !=

&&

||

= += − = /= *=%= .=

and

xor

or



</code>
</code>
یعنی مثلا در
PHP Code:
<code style="white-space: nowrap;">
<code>
4 + 5 * 2



</code>
</code>
ابتدا 2 در 5 ضرب می شود و بعد با 4 جمع می شود.

یعنی جواب مقدار فوق 14 می باشد.

البته شما با گذاشتن پرانتز می توانید php را مجبور کنید که به صورت دلخواه شما عمل کند. مثلا

PHP Code:
<code style="white-space: nowrap;">
<code>
(4+5) * 2



</code>
</code>
مقدار 18 را می دهد.

آموزش Php - قسمت پنجم - توابع





درس ششم



توابع (Functions)



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



در این درس می خوانیم :

چگونه یک تابع را معرفی کنیم و از آن استفاده کنیم.

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

چگونه توابع با صورت داینامیک استفاده کنیم.

چگونه به متغیرهای Global در توابع دسترسی پیدا کنیم.

چگونه به یک تابع حافظه دهیم.



تابع چیست ؟



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



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

تابع در خود کدهایی را جای می دهد که شما هر وقت به آن نیاز دارید آن تابع
را صدا می کنید مقادیر اولیه را به آن می دهید و تابع جواب را برای شما
برمی گرداند.

فراخوانی تابع

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

یکی از ابتدایی ترین توابعی که در خود php هستند تابع print است.

PHP Code:
<code style="white-space: nowrap;">
<code>
print("Hello Web");



</code>
</code>
در جلو تمامی توابع حتما باید () پرانتزها باشند ، البته print یک استثنا است که بدون پرانتز هم کار می کند

PHP Code:
<code style="white-space: nowrap;">
<code>
print(("Hello Web");

and

print "Hello Web";



</code>
</code>
هر دو دستور بالا یک خروجی را می دهند ولی این مورد فقط در دستور print عملی است.

در مثال بالا ما تابع print را صدا کردیم و مقدار "hello word" رو برای اون
فرستادیم. حالا تابع وارد عمل می شود و این جمله را چاپ می کند. تابع شامل
دو بخش است. اولی نام تابع Print در اینجا و دیگری مقادیری که برای تابع
می فرستیم argument همان که در داخل پرانتز جلوی تابع آمده است. برخی توابع
نیاز به چند Argument دارند که آنها را با کاما ، جدا می کنیم. مثلا :

PHP Code:
<code style="white-space: nowrap;">
<code>
some_function( $an_argument, $another_argument );



</code>
</code>
بسیاری از توابع اطلاعاتی برای شما بر می گرداند در راستای عملی که
انجام می دهند. مثلا در صورت درست بودن یا نبودن True یا Falseبر می
گردانند.

ABS() مثلا ، یک عدد را می گیرد و قدر مطلق آن را بر می گرداند.

PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.1</title>

4: </head>

5: <body>

6: <?php

7: $num = − 321;

8: $newnum = abs( $num );

9: print $newnum;

10: // prints "321"

11: ?>

12: </body>

13: </html>
</code>
</code>
در این مثال ما عدد -321 را به $num دادیم. این مقدار را به تابع abs
فرستادیم در آنجا محاسبات لازم انجام شد و جواب برگردانده شد که ما آنرا
در داخل $newnum ریختیم و آن را چاپ کردیم. البته ما می توانستیم کد را کمی
جمع و جور تر بنویسیم و مستقیما عدد را به abs بدهیم و همانجا چاپ کنیم.

PHP Code:
<code style="white-space: nowrap;">
<code>
print( abs( − 321 ) );



</code>
</code>
این یک خط کد همان کاری را می کند که در مثال قبل انجام دادیم.

قوانین استفاده از توابعی که خودمان می نویسیم هم به همین شکل است.



تعریف یک تابع

شما می توانید تابع را با استفاده از دستور Function تعریف نمایید.

PHP Code:
<code style="white-space: nowrap;">
<code>
function some_function( $argument1, $argument2 )

{

// function code here

}



</code>
</code>
نام تابع درست بعد از دستور Function می آید و بلافاصله بعد از آن
پرانتزها قرار می گیرند. اگر تابع شما Argument احتیاج دارد ، شما باید
متغیرهای مورد نیاز را (که به وسیله کاما از هم جدا شده اند) را داخل
پرانتز بنویسید. اگر تابع شما به Argument احتیاجی ندارد داخل پرانتز چیزی
ننویسید.



PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.2</title>

4: </head>

5: <body>

6: <?php

7: function bighello()

8: {

9: print "<h1>HELLO!</h1>";

10: }

11: bighello();

12: ?>

13: </body>

14: </html>
</code>
</code>
در خط 7 کد بالا ما تابع bighello را تعریف کردیم. مشخص است عملیاتی
که این تابع انجام می دهد این است که کلمه Hello! را بین کدهای H1 چاپ
خواهد نمود. ما تابع bighello را بدون Argument تعریف کردیم ، به همین دلیل
داخل پرانتز چیزی ننوشتیم.

PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.3</title>

4: </head>

5: <body>

6: <?php

7: function printBR( $txt )

8: {

9: print ("$txt<br>\n");

10: }

11: printBR("This is a line");

12: printBR("This is a new line");

13: printBR("This is yet another line");

14: ?>

15: </body>

16: </html>
</code>
</code>
در مثال بالا ما تابع printBR را با Argument تعریف می کنیم. حالا در
خطوط 11 و12 و 13 سه مقدار متفاوت را به تابع می فرستیم و مثلا سه خط چاپ
شده در خروجی خواهیم داشت. $txt همانطور که می بینید در خط 7 تعریف شده
است. موقعی که در خطوط 11 و 12 و13 ما تابع را صدا می کنیم $txt هر دفعه
مقداری که برایش فرستاده شده است را به خود می گیرد و در خط 9 آن را چاپ می
کند.

هر مقدار که بخواهیم می توانیم این تابع را اجرا کنیم و خروجی بگیریم.

توجه داشته باشید که اگر تابعی Argument نیاز داشته باشد ، موقع صدا کردن تابع باید حتما مقدار برای آن بفرستیم.

نکته در صورتیکه تابع را به این صورت تعریف کنید :

PHP Code:
<code style="white-space: nowrap;">
<code>
function printBR( $txt = "nothing")



</code>
</code>
در این حالت $txt به صورت default مقدار "nothing" را دارد. یعنی اگر
ما موقع صدا کردن تابع مقداری برای Argument نفرستیم تابع خودش مقدار
Default را به $txt می دهد ولی اگر ما مقدار بفرستیم $txt برابر با مقدار
فرستاده شده می باشد.

مثلا :

[php]

PrintBR();

PrintBr("Hello");

PHP Code:
<code style="white-space: nowrap;">
<code>
در خط اول کد بالا چاپ خواهد شد Nothing و در خط بعد چاپ می شود Hello . مقدار Default در برخی توابع بسیار کارا هستند.



[b] بازگرداندن مقادیر از توابع تعریف شده توسط کاربر



</code>
</code>
شما می توانید از داخل تابع با استفاده از دستور Return مقداری را
برگردانید. دستور return عملیات تابع را متوقف می نماید و مقدار گفته شده
را بر می گرداند.

PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.4</title>

4: </head>

5: <body>

6: <?php

7: function addNums( $firstnum, $secondnum;

8: {

9: $result = $firstnum + $secondnum )

10: return $result;

11: }

12: print addNums(3,5);

13: // will print "8"

14: ?>

15: </body>

16: </html>
</code>
</code>
کد بالا عدد 8 را در خروجی چاپ می کند. عددهای 3 و 5 در $firstnum
and $secondnum ذخیره شدهند و بعد با هم جمع شدند. و جواب آنها در $result
ذخیره شد و سپس در خط 10 آن مقدار برگردانده شده است. با دستور Return شما
می توانید هر چیزی را برگردانید مثلا :

PHP Code:
<code style="white-space: nowrap;">
<code>
function addNums( $firstnum, $secondnum )

{

return ( $firstnum + $secondnum );

}



</code>
</code>
تابع بالا نیز دقیقا همان کاری را می کند که تابع قبلی می نمود.

حتی می توانید به این صورت نیز از return استفاده کنید.

PHP Code:
<code style="white-space: nowrap;">
<code>
return 4;



</code>
</code>
می توانید نتیجه یک عملیات را برگردانید :

PHP Code:
<code style="white-space: nowrap;">
<code>
return ( $a/$b );



</code>
</code>
یا حتی مقداری از یک تابع دیگر را برگردانید :



PHP Code:
<code style="white-space: nowrap;">
<code>
return ( another_function( $an_argument ) );



</code>
</code>


صدا کردن یک Function به صورت داینامیک



این امکان وجود داره که شما اسم تابع یک String یا یک متغیر بگذارید. و برای صدا کردنش از اون استفاده کنید. مثلا :

PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.5</title>

4: </head>

5: <body>

6: <?php

7: function sayHello()

8: {

9: print "hello<br>";

10: }

11: $function_holder = "sayHello";

12: $function_holder();

13: ?>

14: </body>

15: </html>
</code>
</code>
در مثال بالا در خط 7 تابع با اسم Sayhello تعریف شده و در خط 11
function_holder یک متغیری تعریف شده با مقدار sayHello حالا می توان از
function_holder با اضافه پرانتزها برای صدا کردن تابع استفاده کرد.



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

یعنی مثلا در شرایطی یک function اجرا شود و در شرایط دیگه function دیگری.



متغیر ها در داخل تابع

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

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



PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.6</title>

4: </head>

5: <body>

6: <?php

7: function test()

8: {

9: $testvariable = "this is a test variable";

10: }

11: print "test variable: $testvariable<br>";

12: ?>

13: </body>

14: </html>
</code>
</code>
در مثال بالا خروجی چیزی رو چاپ نخواهد نمود. چون $testvariable که
در خط 11 برای چاپ خوانده می شود قبلا تعریف نشده است و $testvariable خط 9
فقط در داخل function قابل دسترسی هستند.



استفاده از متغیر به صورت Global (یعنی داخل و خارج تابع ها)



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

مثلا در مثال زیر



PHP Code:
<code style="white-space: nowrap;">
<code>
1: <html>

2: <head>

3: <title>Listing 6.7</title>

4: </head>

5: <body>

6: <?php

7: $life = 42;

8: function meaningOfLife()

9: {

10: print "The meaning of life is $life<br>";

11: }

12: meaningOfLife();

13: ?>

14: </body>

15: </html>
</code>
</code>
خروجی خالی چاپ می شود و مقدار $life را چاپ نخواهد کرد. در برخی
موارد ما نیاز به استفاده از متغیرهای بیرون تابع داخل یک تابع داریم. برای
این کار کافیه که از دستور Global استفاده کنیم.

به طور مثال می توانید برای این منظور کد بالا را به صورت زیر بازنویسی کنیدر :

[php]

1: <html>

2: <head>

3: <title>Listing 6.8</title>

4: </head>

5: <body>

6: <?php

7: $life=42;

8: function meaningOfLife()

9: {

10: global $life;

11: print "The meaning of life is $life<br>";

12: }

13: meaningOfLife();

14: ?>

15: </body>

16: </html>

در خط 10 از دستور global $life; استفاده کردیم. در این حالت مقدار $life
که بیرون تابع و در خط 7 تعریف شده در داخل تابع قابل دسترس می شود و خروجی
این کد The meaning of life is 42 چاپ خواهد شد.



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

مهم : دقت کنید که اگه $life داخل تابع تغییر دهید مقدار $life در کل برنامه عوض می شود.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد