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

ورژن php 5.30 آماد شد و در تاریخ 30-Jun-2009 بیرون آمد
که سری آخر 5x . امکاتان زیادی بهش اضافه شده که من در زیر نوشتم

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


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

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

$greet('World');
$greet('PHP');
?> [/PHP]

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

NOWDOC : این دستور مثل heredoc عمل می کنه
با این تفاوت که
این دستور کارکتر های خاص مانند \r\n یا متغییر ها رو مانند تک کوتیشن در نظر نمیگیره
کد PHP:
[PHP] 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;
[/PHP]
ternary short cut: دستور ternary
که مانند دستور if کار میکنه (شررط?true:false). یک حالت دیگه هم بهش اضافه شده
اونم اینه که می توانید . عبارت وسط رو وارد نکنید
کد PHP:
$one=($tow?:$tree); [PHP][/PHP]

به صورت بالا اگر $tow درست باشه . خود $tow به $one منتقل میشه در غیر این صورت $tree

jump label (limited goto):
با استفاده از دستورgoto می توانید به هرجا از برنامه که علامت مربوطه رو گذاشتین پرش کنید
کد PHP:
[PHP] <?php
goto a;
echo 'Foo';

a:
echo 'Bar';
?> [/PHP]
برنامه بالا مقدار Bar رو بر می گردونه حرف a هم که جلوی دستور goto نوشته شده یک کلید هست
و می تونه هر نام دیگه ای باشه
یک مثال پیشرفته تر
کد PHP:
[PHP] <?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]
__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 داشته باشه
مثلا یک برای یک دامین
کد PHP:
[PHP] [HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On
[/PHP]
می توانید از path استفاده کنید
کد PHP:
[PHP] [PATH=/home/site/public/secure]
auto_prepend_file=security.php
[/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 هم حدف شد

منبع : PHP: PHP 5.3.0 Release Announcement