PDA

View Full Version : مقاله: تفاوت PHP 4 با PHP 5 (مهاجرت از PHP 4 به PHP 5)



pejman_view
پنج شنبه 22 دی 1390, 07:33 صبح
به نام خداوند متعال

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

اولین قابلیتی که می خواهم توضیح بدهم یکی از مزیت های جدید PHP 5.3.2 است. تا آنجایی که می دانم این قابلیت اولین بار در زبان برنامه نویسی FORTRAN معرفی شد. و در زبان های دیگر هم مورد استفاده قرار گرفت. اما این قابلیت جدیداً در نسخه 5.3.2 اضافه شده است و قبل از آن پشتیبانی نمی شده است.

GOTO:
همینطور که از عنوان این خاصیت پیداست می تواند از از جایی از کد به جای دیگر بپرد. بگذارید به زبان ساده با مثال کار دقیقش را توضیح خواهم داد:


<?php
goto a;
echo 'Ali';

a:
echo 'Pejman';
?>


GOTO در PHP همراه با یک برچسب(لیبل) همراه است. همانطور که در مثال بالا دیدید نوشتم goto a یعنی به PHP می گوید برو به جایی که برچسب a را ببینی من برچسب a: را قبل از نام پژمان گذاشتم. یعنی برنامه از خط اول به جایی که برچسب a هست می پرد بنابراین دیگر علی نمایش داده نمی شود و تنها چیزی که نمایش داده می شود پژمان است.
*توضیحات بیشتر: در زبان Basic می توانید بجای برچسب از شماره خط برای پرش استفاده کنید.

با این قابلیت خیلی کارها می شود کرد مانند ساخت حلقه! در مثال زیر سرعت اجرای حلقه while را با goto مقایسه کردم


<?PHP
$start = microtime(true);
$i = 0;
StartOfLoop:
$i++;
if($i < 1000000) goto StartOfLoop;

echo microtime(true) - $start.PHP_EOL;

$start = microtime(true);
$i = 0;
while($i < 1000000){
$i++;
}

echo microtime(true) - $start.PHP_EOL;
?>


ضمناً توجه داشته باشید: نمی توان از GOTO برای پرش به داخل یک حلقه استفاده کرد! اما می توان از داخل یک حلقه به بیرون پرید.

نمونه صحیح (پرش از داخل حلقه به بیرون):


<?php
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
if($j==17) goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
?>


نمونه غلط (پرش از بیرون به داخل حلقه):

<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
while($j--) {
loop:
}
}
echo "$i = $i";
?>

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

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

با آرزوی موفقیت.