گرافیک php 5.30 Release آخرین سری 5x

k2-4u

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

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


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


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

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


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

NOWDOC : این دستور مثل heredoc عمل می کنه
با این تفاوت که
این دستور کارکتر های خاص مانند \r\n یا متغییر ها رو مانند تک کوتیشن در نظر نمیگیره
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;

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

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

__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:
[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On
می توانید از path استفاده کنید
PHP:
[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
 

amirepsilon

Active Member
پی اچ پی اسرائیلی !!!!

واقعا چیکار میشه کرد ؟
نمیتونیم زبون جدیدی به قدرت php بنویسیم
و جدا شدن از php و کار کردن با زبان دیگری هم جالب به نظر نمیرسته

خدایا php را از دست صهیونیست ها نجات بده . . .
 

k2-4u

Well-Known Member
پی اچ پی اسرائیلی !!!!

واقعا چیکار میشه کرد ؟
نمیتونیم زبون جدیدی به قدرت php بنویسیم
و جدا شدن از php و کار کردن با زبان دیگری هم جالب به نظر نمیرسته

خدایا php را از دست صهیونیست ها نجات بده . . .

فکر کنم فقط موتور ZEND اسرائیلی باشه
. امید وارم برنامه نویس های ما . قوی بشن و بتونن یه
چیزی مثل موتور ZEND رو برای php درست کنند
 

amirepsilon

Active Member
بیاید یکبار برنامه نویسان ایرانی رو بشماریم !
من و شما رو نمیگم
آدم های حرفه ای رو میگم که بعضی هاشون اصلا ایران نیستن
 

Mr.Steres

Active Member
علم و تکنلوژی یک چیز عمومی و برای تمام مردم دنیاست . مثلا خدایی نکرده شما سرطان داشته باشی داروی درمانت چون امریکایی هست باید بمیری ؟ نه عزیز من ... شما از امکانات اونا برای رشد خودت استفاده کن که از خودشون جلو بزنی ...
 

foranyone

Well-Known Member
علم و تکنلوژی یک چیز عمومی و برای تمام مردم دنیاست . مثلا خدایی نکرده شما سرطان داشته باشی داروی درمانت چون امریکایی هست باید بمیری ؟ نه عزیز من ... شما از امکانات اونا برای رشد خودت استفاده کن که از خودشون جلو بزنی ...
خیلی موافقم !:rose::rose::rose::rose:
ما باید الان تنها هدفمون این باشه که فرهنگ open source رو گسترش بدیم ، copy right رو رعایت کنیم

به کدهای هم احترام بزاریم و دزدی نکنیم و به کشور ایران تو دنیای نرم افزار چهره ی خوبی بدیم .

من واقعا برام دردناکه که Google میگه تو ایرانی هستی نمیزارم از سرویسهام استفاده کنی :mad:
در صورتی که تمدن ایرانی کجا تمدن اونا کجا !!
 

amin2000

Member
مشکل ایرانی جماعت اینه : متحد نیستن ، به هم اعتماد ندارن ( شایدم نمیشه به هم اعتماد کرد :دی ) ، از همه مهم تر همه دنبال پول بیشتر اند ( شایدم به خاطر فشار فقر و کم پولی هست )

اما php رشد خوبی در پیش گرفته
 

NabiKAZ

Well-Known Member
یادمه در عهد باستان، در دوره Qbasic ، گفته میشد استفاده از Goto و پرش مرتب به نقاط مختلف یک برنامه، خوانایی برنامه رو پیچیده میکنه؛ و راه حل استفاده از function ها مطرح بود. در زبانهایی مثل PHP هم که goto وجود نداشت، گفته میشد به خاطر همون مسئله، goto حذف شده.
ولی حالا نمیدونم به چه دلیلی دوباره ظهور کرده!
 

k2-4u

Well-Known Member
یادمه در عهد باستان، در دوره Qbasic ، گفته میشد استفاده از Goto و پرش مرتب به نقاط مختلف یک برنامه، خوانایی برنامه رو پیچیده میکنه....
کاملا موافقم . تا اونجا که منم شنیدم
GOTO یک دستوریه که برنامه رو خراب می کنه . (از نظر پیچیده شدن )
:-? نمی دونم چرا فیلشون یاد هندوستان کرده !!

سه تا کاریکاتور هم گذاشتن تو Manual اش . lol
http://ir.php.net/goto
 

oldooz

Well-Known Member
این دستور برنامه رو پیچیده می کنه ولی به نظر من خیلی جاها خیلی کاربرد داره و به درد می خوره( کلا مفید و خوبه)
:rose:
 

k2-4u

Well-Known Member
این دستور برنامه رو پیچیده می کنه ولی به نظر من خیلی جاها خیلی کاربرد داره و به درد می خوره( کلا مفید و خوبه)
:rose:
به نظر من goto رو وقتی باید استفاده کرد که . هیچ راه دیگه ای غیر از تغییر کد
برای آدم نمونده . استفاده پی در پی از goto
مثلا به جای for , while و... (کلا حلقه ها ) کار اشتباهیه .

یک مشکلی که php داره اینه که label نداره !!
مثلا تو Perl میشه . به صورت زیر . برای یک بلاک label تعریف کرد
PHP:
LABEL:{
 #Block Code
}

LABEL1:while(...){
	LABEL2:while(...){
		if(1==$i){
			next LABEL1;
		}
	}
}

در حال حاضر GOTO تنها دستوریه که . label داره (یعنی یه جورایی مثل label )
به احتمال زیاد . در بعضی مواقع ضروری کاربرد داره
مثلا وقتی که . شما 2 تا حلقه تو در تو دارین
PHP:
for($i=0;$i<100;$i++){
	FOR1:break;
	for($n=0;$n<100;$n++){
		if($n==50){
			goto FOR1;
		}
	}
}
اگر GOTO نباشه . شما در حلقه فرزند نمی تونی . به حلقه پدر دسترسی داشته باشی
و Break یا countinue اش کنی
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا