• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
امکانات جدید php 5.30
#1
ورژن php 5.30 آماد شد و در تاريخ 30-Jun-2009 بيرون آمد
که سري آخر 5x . امکاتان زيادي بهش اضافه شده که من در زير نوشتم

1- پشتيباني از namespace (که در يک تاپيک جدا در موردش کاملا توضيح ميدم )


2 . Late static binding : به وسيله اين قابليت مي توانيد در داخل کلاس با دستور static
به يک متد Static دسترسي پيدا کنيد
کد پی‌اچ‌پی:
static::StaticMethodName(); 
و در خارج از کلاس هم با آوردن مستقيم نام کلاس اين کار رو انجام بدهيد
کد پی‌اچ‌پی:
ClassName::StaticMethodName(); 


3.Lambda Functions and Closures:
توابع بدون نام اين امکان رو به شما ميدهند (اگر با جاوا اسکريپ کار کرده باشيد حتما ديدين)
که يک تابع بدون نام درست کنيم و اونو به درون يک متغيير بريزيم .
يا اينکه به عنوان آرگومان يک تابع که ورودي callback ميگيره در نظرش بگيريم
کد پی‌اچ‌پی:
<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return 
strtoupper($match[1]);
}, 
'hello-world');
// outputs helloWorld
?>
کد پی‌اچ‌پی:
<?php
$greet 
= function($name)
{
    
printf("Hello %s\r\n"$name);
};

$greet('World');
$greet('PHP');
?>


4. دستورات اضافه شده :

NOWDOC : اين دستور مثل heredoc عمل مي کنه
با اين تفاوت که
اين دستور کارکتر هاي خاص مانند \r\n يا متغيير ها رو مانند تک کوتيشن در نظر نميگيره
کد پی‌اچ‌پی:
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT; 

ternary short cut: دستور ternary
که مانند دستور if کار ميکنه (شررط?true:false). يک حالت ديگه هم بهش اضافه شده
اونم اينه که مي توانيد . عبارت وسط رو وارد نکنيد
کد پی‌اچ‌پی:
$one=($tow?:$tree); 
به صورت بالا اگر $tow درست باشه . خود $tow به $one منتقل ميشه در غير اين صورت $tree

jump label (limited goto):
با استفاده از دستورgoto مي توانيد به هرجا از برنامه که علامت مربوطه رو گذاشتين پرش کنيد
کد پی‌اچ‌پی:
<?php
goto a;
echo 
'Foo';
 
a:
echo 
'Bar';
?>
برنامه بالا مقدار Bar رو بر مي گردونه حرف a هم که جلوي دستور 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';
?>

__callStatic() :
يک متد Overloading است (به راهنماي برنامه نويسي شي گرا در php 5 مراجع کنيد )
که هر وقت شما با يک متد Static ارتباط برقرار کنيد . واکنش نشون ميده


5. و php 5.30 قدرتش در گرد کردن اعداد شناور بيشتر و بهتر شده


6. بدليل اينکه 'notice (در error reporting ) . مورد علاقه کسي نبود E_DEPRECATED ( قسمتي از E_ALL)
به جاي E_STRICT گذاشته شد



7. flexiblity in php.ini :
به وسيله flexibity مي توانيد در فايل php.ini
تعريف کنيد که هر فايل يا فولدر چه تنظيمات ini داشته باشه
مثلا يک براي يک دامين
کد پی‌اچ‌پی:
[HOST=dev.site.com]
error_reporting E_ALL
display_errors 
On 
مي توانيد از path استفاده کنيد
کد پی‌اچ‌پی:
[PATH=/home/site/public/secure]
auto_prepend_file=security.php 


8. extensions هاي زير هم اضافه شد:
ext/phar, ext/intl, ext/fileinfo, ext/sqlite3, ext/enchant

9. 140 باگ هم فيکس شد

و يه چزهاي هم از php خذف شد که شامل
اين extensions ها
ext/mhash (به جاش ext/hash)
ext/msql
ext/pspell (به جاش ext/enchant)
ext/sybase (به جاش ext/sybase_ct)

اين ها هم به PECL منتقل شدند
ext/ming, ext/fbsql, ext/ncurses, ext/fdf

ini.zend.ze1-compatibility-mode هم حدف شد

منبع : http://php.net/releases/5_3_0.php
  پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان