بخشی از مقاله

زبان برنامه نويسي براي ايجاد صفحات پويا در وب


تاريخچه
كمتر كاربر اينترنت را مي‌توان يافت كه تاكنون با صفحاتي با پسوندPHP برخورد نكرده باشد و البته اين پسوند نامي آشنا براي طراحان و برنامه ‌نويسان وب است.
پي اچ پي (PHP) يكي از محبوب‌ترين و رايج‌ترين زبان‌هاي برنامه ‌نويسي براي ايجاد صفحات پويا در وب است و كمتر خواسته‌اي در محيط وب وجود دارد كه در PHP قادر به انجام آن نباشيم. از ايجاد يك صفحه ساده براي پردازش اطلاعات فرم‌ها، ارتباط با بانك‌هاي اطلاعات، كار با سوكت‌هاي TCP، پردازش فرمت‌هاي PDF وZIP و حتي تصوير بخشي از توانايي اين زبان است.
PHP در سال 1994 توسط Lerdorf Rasmus و براي استفاده شخصي‌اش ايجاد شد. او بعدها و در سال 1995 نسخه حرفه‌اي‌تر از مفسر زبان PHP به نام Version 2 PHP/FI را عرضه كرد، و در سال 97 تعداد سايت‌هايي كه از PHP استفاده مي‌كردند به بيش از 50000 رسيد و امرازه نيز ميليون‌ها سايت از آن استفاده مي‌كنند.
سايت‌هاي مشهوري چون Alltheweb و mamma از اين زبان استفاده مي‌كنند و حتي Yahoo نيز در حال استفاده از اين زبان براي توسعه وب سايت‌هاي خود است.

PHP زباني براي سيستم عامل‌ها
يكي از برترين مزاياي زبان PHP سازگاري آن با اكثر سيستم عامل‌ها و نرم‌افزارهاي وب سرار (مانند IIS و Apache) است. برخي از ديگر زبان‌ها و تكنولوژي‌ها مانند ASP محدود به سيستم عامل windows است و پشتيباني از آن در ديگر سيستم عامل‌ها بسيار پر هزينه و محدود است، و برخي نيز مانند JSP مشكلاتي با برخي نرم‌افزارهاي وب سرار دارد. ساختار و امكانات PHP به شكل مستقل از سيستم عامل شكل گرفته است و اين بدان معنا است كه به طور مثال برنامه‌نويس مي‌تواند اسكريپت خود را تحت سيستم عامل ويندوز نوشته و تست كند و سپس آنرا بدون تغيير به سيستم عامل يونيكس يا لينوكس انتقال دهد. درPHP امكان استفاده از برخي از امكانات خاص سيستم عامل‌هاي مشهور نيز در نظر گرفته است كه براي نمونه مي‌توان از پشتيباني از تكنولوژي DCOM و يا Windows API نام برد. نسخه‌هاي جديد مفسر PHP سازگار با ديگر تكنولوژي‌هاي خاص وبسرارها مانند ISAPI نيز مي‌باشد.

PHP رايگان و Open Source
تهيه برنامه مفسر PHP براي همه سيستم عامل‌ها رايگان است و علاقه‌مندان مي‌توانند آخرين نسخه مفسر اين زبان را از سايت رسمي PHP بارگذاري (Download) كند.
همچنين امكان تهيه رايگان سورس مفسر PHPنيز فراهم است ، و اين مسئله علاوه بر اين كه در گسترش امكانات اين زبان بسيار موثر بوده است، مزيتي براي شركت‌ها و توسعه ‌دهندگان براي انتخاب اين زبان است چرا كه پشتيباني و اعتماد به آن را راحت‌تر كرده است. بسياري از ويرايشگرهاي حرفه‌اي اين زبان نيز يا رايگان هستند و يا با هزينه بسيار كم مي‌توان آنها را تهيه كرد، در حالي كه ديگر تكنولوژي‌ها، مثلاً تهيه پلات فرم‌هاي جاوا هزينه هنگفتي دارد و همچنين كار حرفه‌اي با تكنولوژي .NET نيز نياز به تهيه Visual Studio.NET و پرداخت هزينه چند صد دلاري است.


سرعت بالاي تفسير و اجراي PHP يكي از سريع‌ترين زبان‌ها در نوع خود است. تفسير و اجراي يك اسكريپ php به طور متوسط تا سه و چهار برابر يك اسكريپ ASP است. (البته بايد در نظر داشته باشيم كه IIS با Cach اسكريپت‌هاي ASP سرعت اجراي آنها را در دفعات بعد بالا مي‌برد) همچنين در ASP استفاده زيادي از اشيا COM مي‌شود كه باعث كاهش سرعت و مصرف منابع سيستم مي‌شود در حالي كه در PHP بسياري از امكانات و حتي برقراري ارتباط با يكي محبوب‌ترين نرم‌افزار مديريت بانك‌هاي اطلاعاتي mySql به صورت توكار نهاده شده است. شركت Zend كه تهيه كننده فعلي موتور مفسر و پشتيباني كننده آن است،

محصولات ديگري را نيز در جهت بهينه كردن سرعت اجراي PHP ارائه كرده است اين محصولات با افزايش سرعت تفسير و همچنين ذخيره كردن نتيجه تفسير (Cash) باعث افزايش چندين برابر اجراي آن مي‌شوند. ساختار مناسب و امكانات بالا در PHP همان طور كه در ابتداي مقاله اشاره شد، كمتري نيازي در

برنامه‌نويسي تحت وب وجود دارد كه در PHP امكان رفع آن نباشد. PHP شامل كتابخانه‌اي غني از توابعي است كه امكان پردازش اطلاعات فرم‌ها، كار با بانك‌هاي اطلاعاتي، فايل‌هاي متني و باينري، فايل‌هاي گرافيكي، PDF، ZIP و پراتكل‌هاي TCP، FTP، DNS،SMTP و ... را براي برنامه‌نويس فراهم مي‌كند، اين را مقايسه كنيد با ASP كه به طور مستقل امكان Upload File ، ارسال ايميل يا كار با فايل‌هاي باينري را ندارد. همچنين PHP يكي ازبهترين پشتيباني‌ها را از نرم‌افزارهاي

بانك اطلاعات دارد. mySql , SqlServer , mSql , dBase, Oracle , IBMDB2, PostgreSQL , InterBase و بسياري از نرم‌افزارهاي ديگر در PHP قابل استفاده هستند و البته امكان كار با ODBC و COM برا ي استفاده از بانك‌هاي Ms Access و ديگر محصولات نيز هست. قدرت زبان PHP تنها در كتابخانه توابع آن نيست، پشتيباني بسيار خوب از برنامه‌نويسي شيءگرا (OOP) و كار آسان و سريع با متغيرها از مزاياي دورني اين زبان است.

معايب PHP
حال كه از حسن PHP گفتيم، بد نيست اشاره‌اي نيز به برخي معايب آن داشته باشيم. نحو (syntax) زبان PHP بسيار شبيه زبان C++ و Perl است. اين اگر چه باعث استقبال از اين زبان توسط برنامه‌نويسان C و يا Perl شد، اما اين نحو براي بسياري از طراحان صفحات وب چندان آسان نيست و بسياري معتقد هستند كه تكنولوژي ASP و زبان VBScript آسانتر و قابل درک تراست و همچنين JSP و زبان جاوا نيز به دليل محبوبيت و ساختار قدرتمند آن مورد توجه است. يك اشكال ديگر PHP عدم پشتيباني خوب آن از يونيكد و به خصوص زبان فارسي است، حتي آخرين نسخه‌هاي اين زبان نيز امكان سورت(Sort) صحيح متون فارسي را

ندارد. البته اين اشكال با كامپايل مجدد يا كمي برنامه‌نويسي قابل حل است. از كجا شراع كنيم؟ تقريبا مي‌توان گفت اگر داراي هر سيستم عاملي هستيد مي‌توانيد استفاده و كار با اين زبان را شراع كنيد؛ تنها كافي است به سايت رسمي زبان PHP به آدرس http://www.php.net برايد، و نسخه مفسر اين زبان را با توجه به سيستم عامل خود بارگذاري (Download) كنيد. راهنما و مرجع دستورات و توابع اين زبان در همين سايت قراردارد. همچنين سايت http://www.IranPHP.net مي‌تواند مكاني مناسب براي حل مشكلات و تماس با ديگر برنامه‌نويسان PHP باشد.

 

نصب PHP (نصب برراي windows 2000 server)

نصب Apache وPHP برراي يک سرايس دهندۀ windows به علت محيط کار گرافيکي، ساده تر از نصب بر راي Linux مي باشد. همچنين شما لازم نيست که حتماً مدير سرايس دهنده باشيد.
شما ميتوانيد PHP را بر راي هر يک از ويندوزهاي 95,98,ME,NT و يا 2000 نصب کنيد. براي اين کاربايد فايلهاي مورد نياز را ازسايتهاي php وApache بارگذاري کنيد. همچنين براي نصب ساده تر، فايلهاي php مخصوص windows نيز موجود است.

براي نصبApache وPHP

 

1- جديدترين و با ثبات ترين نسخه هاي php وApache را در کامپيوتر خود بارگذاري کنيد.

2- PHP را بر راي يک شاخه مناسب (مانند c:\php) باز کنيد(unzip) . براي اين منظور شما احتياج به يک نرم افزار براي باز کردن فايلهاي فشرده شده (zip) داريد.

3- براي نصب Apache، برنامه نصب آنرا اجراکنيد.

4- فايل php.ini-distرا از شاخه php به شاخه سيستم (مانندc:\windows) کپي کنيد و نام آنرا بهphp.ini تغيير دهيد.

5- برنامه Apache را اجراء کنيد.
ساده ترين راه براي اين منظور استفاده از منوي Start > Programs > Apache WebServer > Start Apache مي باشد.
6- با استفاده از مرارگر ِوب خودApache و PHP را آزمايش کنيد.

ساده ترين راه براي اين منظور، تايپ آدرسhttp://Localhost/ در مرورگر خود مي باشد. همچنين شما مي توانيد از فايل test.php نيز براي آزمايش نصب موفق PHP استفاده کنيد.

نکته: همچنين مي توانيد php را بر راي سرويس دهنده هاي ديگر وب، مانند IIS نيز اجراء کنيد.

پيکربندي

با وجود اينکه بهتر است در هنگام نصب، پيکربنديphp را نيز انجام دهيد، اما شما مي توانيد بعد از نصب نيز بعضي از پارامتر را تغيير دهيد. فايل php.ini حاوي پارامترهايي براي چگونگي عملکرد php مي باشد، شما مي توانيد با ويرايش اين پارامترها و راه اندازي مجدد برنامه کاربردي سرايس دهندۀ ِوب خود، اين پارامترها را تغيير دهيد. اگر شما بعد از تغيير اين فايل با مشکلي مواجه شديد، مي توانيد مجدداً عمليات کپي کردن فايل php.ini-dist و تغيير نام آن به php.ini را انجام دهيد.
براي اينکه php بتواند پايگاههاي داده را پشتيباني کند، از mcrypt () استفاده کند و يا موارد ديگر، شما بايد کتابخانه ها و بسته هاي ديگري نيز بارگذاري کنيد. بعد از بارگذاري، شما بايد مکان اين کتابخانه ها يا بسته ها را در فايل php.ini مشخص کنيد براي توضيحات بيشتر به « راهنماي php » مراجعه کنيد.


تعريف از PHP

در يك كلام: « PHP يك زبان برنامه نويسي اسكريپتي(script language ) مثل perl، قابل جاسازي يا تلفيق ( embedding ) در كدهاي HTML (مثل جاوا اسكريپت) ، قابل اجرا بر روي سيستمهاي مختلف مثل لينوكس و ويندوز، با كابردهاي وسيع براي برنامه نويسي پيشرفته در وب است.»
درضمن Server-side هم هست يعني مثل ASP راي سرار اجرا و خراجي آن بصورت يك فايل HTML تحويل شما مي شود بر خلاف JavaScript كه Client-Side است. پس لازم نيست مرارگر خاصيت اضافه اي داشته باشد.
اگر چه PHP syntax خودش را از C قرض! گرفته، اما C++ و Perl و Java هم از عنايت ايشون بي نصيب نمونده اند. شما اگر C بلديد مي توانيد تا آن کار کنيد.


PHPو بانك اطلاعاتي

از آنجائيكه برنامه نويسي حرفه اي بدون بانك اطلاعاتي ( database ) نمي شود، PHP هم با خيلي از بانك هاي اطلاعاتي رابطه دارد. مثلاAdabas D, Ingres, Oracle (OCI7 and OCI8), dBase, InterBase, Ovrimos Empress FrontBase, PostgreSQL , FilePro (read-only), mSQL, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, Unix dbm .
بغير از بانكهاي اطلاعاتي، PHP كارهاي زير را مثل آب خوردن انجام ميدهد:
ساخت و پرداخت تصاوير، كارهاي امنيتي، كار با كوكي ها، آپ.لود فايل، پردازش XML و هزارتا + يك كار ديگر.

چگونگي عملکرد PHP
نوشتن يك برنامه PHP شبيه ايجاد يك صفحه HTML است و تنها با اين تفاوت كه كدهاي اين زبان در داخل صفحات و در بين كدهاي HTML درج مي‌شود و البته طبيعي است كه يك فايل PHP مي‌تواند تنها شامل كدهاي PHP باشد. با توجه به اين كه PHP يك زبان طرف سرايس ‌دهنده است، و بنابراين براي اجرا، اسكريپت‌هاي آن بايد آنها را به كامپيوتر سرايس‌ دهنده وب (مانند سيستم Windows 2000 و نرم‌افزار IIS) انتقال دهيم و حالا با تايپ نام فايل آن در گردشگر اينترنت مي‌توانيم آنرا اجرا و خراجي احتمالي را مشاهده كنيم. طبيعي است كه در سمت سرايس‌گيرنده (كاربر سايت) امكان مشاهده كدها وجود ندارد. پس از درخواست براي اجراي يك اسكريپت PHP فايل حاوي كدهاي PHP به برنامه مفسر PHP انتقال داده شده (معمولا php.exe) و اين برنامه بعد از تفسير و اجراي اسكريپت، نتيجه را به سمت كاربر مي‌فرستد. در زير نمونه‌اي از يك اسكريت ساده PHP درج شده است.
اين برنامه پيغام ارسالي توسط كاربر را مي‌گيرد (اين پارامتر مي‌تواند توسط يك فرم يا در نوار آدرس گردشگر اينترنت تايپ شود) و آن را در قالب HTML براي كاربر ارسال مي‌كند. كد HTML نتيجه حاصل كه كاربرامكان مشاهد آنرا دارد:
http://www.mysite.com/test.php?message=hello اسكريت PHP كه در سمت سرويس دهنده اجرا مي‌شود از آنجا كه آموزش اين زبان در اين پروژه نمي‌گنجد، بنابراين در ادامه نگاهي به تاريخچه ، مزايا و احتمالا معايب آن خواهيم داشت.

نحوه استفاده

به راحتي! هرجا كه خواستيد، دستور مورد نظر را بين دو تا علامت "<?" و "?>" ميذاريد .
اينطوري: <? echo "This is a test"; ?> مدلهاي ديگري هم هست، ولي همين بهتره. البته كافي است يكبار از يكي از دستورات PHPدران يك فايل HTML استفاده کرد، تا توانست براي هميشه فايل را به ".php" تغيير نوع دهيد، تا بتواند راي سرار اجرا شود مگر اينكه...

يك مثال:
< html>
< body>
<? echo " farsi neveshtam!"; ?>
</body>
</html>
چند نكته:
اول: PHP case-sensetive است. يعني حساس به حراف. پس $a و $A با هم فرق دارند.
دوم: تمام دستورات در PHP به سميكالن " ; " ختم مي شوند. اين را هيچ وقت فراموش نكنيد.
سوم: اگر بخواهيد توضيحات ( comments ) يك خطي داشته باشيد، بايد از دو علامت "//" استفاده كنيد. و اگر توضيحاتتان در چند خط باشند از "/*" در ابتدا و "*/" در انتهاي توضيح.
چهارم: بين علامت كوتيشن (") و گيومه (') يك فرق كوچيك هست. PHP محتواي بين كوتيشن را تحليل و ترجمه ميكند.

انواع متغيرها:

PHP ، 8 نوع ( type ) دارد:
boolean و integer و float و string و array و object و resource و NULL كه پنج تاي اولي پركاربردتر هستند.
يك متغير با گذاشتن علامت $ به اول يك اسم ساخته ميشود! دامنه تعريف متغيرها، در ناحيه اي است كه تعريف مي شوند.
بعدا كه تعريف تابع را ياد گرفتيد، مي بينيد كه از يك متغير سراسري همين جوري! نمي شود در بدنه يك تابع استفاده كرد. در ضمن PHP متغيرهاي "از پيش تعريف شده" ( predefined ) دارد. براي اينكه آنها را بينيد كافي است كد زير را بنويسيد و اجرا كنيد:

<? echo phpinfo(); ?>

مثلا $_SERVER['PHP_SELF'] كه اسم فايل برنامه را بر مي گرداند. از اين براي مستقل كردن كدهاي برنامه از اسم فايل خيلي استفاده مي شود.
يا $_SERVER['HTTP_USER_AGENT'] كه نوع مرورگرتان را برمي گرداند.
يا $HTTP_POST_VARS و $HTTP_GET_VARS كه براي ارتباط با فرم ها بايد! استفاده بشوند. (البته مي تونيد از $_POST يا $_GET هم استفاده كنيد، به شرطي كه نسخه PHPبالاتر از 4.2 باشد)


اولين تجربه!

براي اولين تجربه بد نيست! كه با كاركردن با فرم ( form ) آشنا شويم.
فرض كنيد مي خواهيد اسم يكي را بگيريد و به او سلام كنيد.
اين فرم (مثلا hello.htm ) :

<form method="POST" action="hello.php">
<input type=text name=username size="20">
<input type=submit value="Say!" name=ok>
</form>
اين هم برنامه hello.php
<?
// hello.php
$username= $HTTP_POST_ VARS['username']; // php 4 and later
// you can use $_POST in php 4.2 instead $HTTP_POST_VARS
echo " Hello dear ", $username;
?>
آرايه ها:

آرايه ها موجودات دوست داشتني هر زبان هستند. قبلا فقط مي شد تنها عناصر همنوع را در يك آرايه قرار داد، اما در php مي توان هر نوع داده اي ( از 8 نوع) را با هر نوع انديسي (integer و string ) در يك آرايه جمع كرد.

به چند روش مي شود، يک آرايه را تعريف كرد.
1. $a= array( key => value, …. );
2. $a[key]= value;
3. $a[]= value;

چند مثال:
ساختن يك آرايه خالي !
$a= array ();
آرايه مشخصات يك نفر
$a= array('name'=>'netvand', 'family'=>''netkadeh", 'age'=>22);

همان آرايه بالا ي كه با 3 تا دستور ساخته شده
$a['name']= 'netvand';
$a['family']='netkadeh';
$a['age']= 22;
اگر انديسي براي آرايه مشخص نكنيد، يعني خانه صفرم [0].
$a[ ]=1;
اما مقادير بعدي بعد از آن به ترتيب قرار مي گيرند. يعني [1] و [2] و…
$a[ ]=2;
$a[ ]= 3;

براي اينكه ببينيد آرايه اي كه ساخته ايد، چگونه عمل مي کند از اين دستور كمك بگيريد:
<? print_r($a); ?>

متدوالترين دستوري كه براي كار با آرايه ها به كار ميرود، دستور foreach است.

foreach ( $arrayname as $key =>$value )
echo $value,"<br>";
foreacho ( $arrayname as $key )
echo $arrayname[$key], "<br>";

دستورات بالا، مقدار عناصر آرايه را در سطرهاي متوالي چاپ ( بخاطر <br> ) مي كنند.
توجه: در PHP تابعهاي آماده زيادي براي كار راي آرايه نوشته شده كه كافي است شما فقط طرز استفاده آنها را ياد بگيريد.

رشته ها:
رشته را كه مي شناسيد: مجموعه اي از كاراكترهاست كه مي تواند تا آنجا که ما بخواهيم بزرگ شود.
براي اينكه بتوانيد از كاراكترهاي escaped داخل رشته ها استفاده كنيد بايد قبل از آنها علامت (\) را قرار دهيد.
مثلا: آخر خط (\n) ، سر خط (\r) ، بك اسلاش (\\) ، دلار (\$) و كوتيشن (\").

رشته را به سه روش مي توان ايجاد کرد:
اول: با علامت نقل قول. (')
دوم: با كوتيشن (دوتا نقل قول). (")
سوم: <<<EOD ......... >>>

توجه كنيد كه:
1-اگر بخواهيد داخل نقل قول (') از بك اسلش يا نقل قول استفاده كنيد (كه فقط همين دو تا را هم ميشود استفاده كرد)، بايد قبل آنها يك بك اسلش قرار دهيد.
<? echo ' I\'ll show your C:\\*.* '; ?>
//output: I'll show your C:\*.*
اگر بقيه را بگذاريد خودشان را همراه يك اسلش نشان ميدهند. مثل متغيرها.
<? echo 'in ghalate! \n choon sare khat nemire.'; ?>
//output: in ghalate! \n choon sare khat nemire.
2- همانطور كه قبلا گفتيم، php متغيرهاي داخل دوتا علامت نقل قول را expand نمي كند. يعني مقدارشان را جايگزين اسمشان نمي كند. مثلا :
$p= 'u don\'t see this!';
echo 'Oh! $p.';
//output: Oh! $p.
اين تنها فرق رشته هاي نقل قولي با كوتيشني است.

نگاه کنيد:
<?
$php = 'PHP!';
echo 'first char is: '.$php[0];
//output: first char is: P
echo 'last char is: '.$php{strlen($php)-1};
//output: last char is: !
$Ilike= "I like ";
echo $Ilike.$php;
$Ilike .= $php; // $Ilike= $Ilike.$php;
echo $Ilike;
//output: I like PHP!
?>
خوب حتما فهميديد كه چگونه ميشود حرف اول و آخر رشته را چاپ كرد و چطوري دو تا رشته را به هم چسباند (با علامت نقطه) و به يك رشته مقداري را اضافه كرد. (با نقطه مساوي) .

عملگرها:
تعداد زيادي عملگر وجود دارد (لازم نيست بشماريد) كه براي كاركردن با "نوع" هاي مختلف داده اي بكار ميرود.

معروفترين آنها عبارتند از:
+ و – و . و * و / و % (عملگرهاي رياضي)
= و =+ و =(براي مقداردهي اعداد و رشته ها)
== (برابر) و =! (مخالف) و <= و >= و < و>(عملگرهاي مقايسه اي)++و--(افزودن و كاستن)
فقط در مواقع استفاده بايد حق تقدم عملگرها را درنظر بگيريد.

ساختارهاي كنترلي:
تذكر خيلي مهم: معمولا چون بدنه اين دستورات بيشتر از يك دستور دارند، حتما لازمه كه بين دو تا آكولاد { } قرار بگيرند. گذاشتن سمي کالن بعد از دستورات را هم كه فراموش نمي كنيد.

معروفتري نشانه ها عبارتند از:
-- اگر:
if (expr)
statement
توجه: پرانتزها هميشه لازم هستد.
مثال:
if ($a > $b)
echo $a;
-- اگر، وگرنه:
if (expr)
statement
else
statement
مثال:
if ($a > $b)
echo $a;
else
echo $b;
-- هر وقت كه:
در اين دستور، اگر فقط عبارت درست باشد، بدنه حلقه اجرا ميشود.
while (expr) statement
مثال:
$a= 1;
while ($a < 1000)
$a++;
-- تا وقتي كه: اين دستور، بدنه را حداقل يكبار اجرا ميكند تا به كنترل شرط برسد.
do
statement
while (expr);
مثال:
$a=1000;
do
$a--;
while ($a == 0);
-- براي:
for (expr1; expr2; expr3) statement
مثال:
for ( $i =0; $i< 10; $i++)
print($i);
يا !
for ($i=0; $i<10; print $i, $i++);
نمونه ديگر:
$first ? $second : $third
اگر $first درست باشد، مقدار $second و گرنه $third برگردانده مي شود.
$b= ($a>=10) ? $a: '0'.$a;
/* output: $a=5 , $b=05
$a=20, $b=20 */
تابع:
براي اينكه n تا دستور را k بار انجام بديم و البته همه آن n تا دستور را k بار ننويسيم، مي توانيم از تابع استفاده کنيم.
يكبار، آن n دستور را در يك تابع مي نويسيم و هرجا كه لازم شد، تابع را صدا مي كنيم.
function function_name(arg_1, arg_2 , … ) { statements;
return function_value }
نكته:
1ـ اگر داخل تابع متغيري تعريف كنيد، فقط داخل تابع معتبر است. شما مي تونيد همنام با متغيرهاي سراسري (آنهائي كه داخل برنامه اصلي تعريف شده اند)، داخل تابع متغير تعريف كنيد. برنامه هم از مقدار آنها استفاده خواهد كرد. هيچ اشكالي هم ندارد!
2_ در نسخه هاي اخير PHP ، حتي از متغيرهاي سراسري هم نمي شود داخل تابع استفاده كرد مگر اينكه با global تاكيد كنيد كه اينها سراسري هستند يا آنها را به صورت متغيرمرجع به تابع ارجاع بديد.
global $a, $b, $c;
3ـ پارامترهاي تابع، متغيرهاي داخلي محسوب ميشوند و فقط داخل بدنه تابع معتبر هستند.
4ـ مي تونيد، به تابع پارامتر ندهيد، يا پارامتر تابع را هم آنجا (هنگام تعريف تابع) مقداردهي كنيد.
5ـ تابع شما مي تواند، ظاهرا، مقداري را بر نگرداند‌ (كه خودش مقدار True را برمي گرداند).

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