Nedir: PHP 5.3?

3 Cevap php

Possible Duplicate:
What is the PHP ? : operator called and what does it do?

Dan http://twitto.org/

<?PHP
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
  throw new Exception('Error');
$c();
?>

Twitto PHP 5.3 gibi birçok yeni özellikler mevcut kullanır:

  1. DIR sabiti
  2. : Operatör
  3. Anonim işlevler

  1. 2 numara PHP 5.3 ?: ile ne yapar merak ediyorum

  2. Ayrıca onlar Anonim işlevler ile ne demek istiyorsunuz? Bir süre için var olan bir şey değil miydi?

3 Cevap

?: sadece önceden mevcut idi koşullu operatör şeklidir:

expr ? val_if_true : val_if_false

5.3 o orta bölümünü terk etmek mümkündür, örneğin expr ?: val_if_false eşdeğerdir:

expr ? expr : val_if_false

Kimden manual:

PHP 5.3 yana, koşullu operatör orta bölümünü terk etmek mümkündür. İfade expr1 ?: expr3 döner expr1 expr1 TRUE değerlendirir, ve expr3, aksi takdirde.

?: operatör conditional operator (genellikle üçlü operatörü olarak anılacaktır) 'dir:

Ifadesi (expr1) ? (expr2) : (expr3) expr2 değerlendirir expr1 TRUE değerlendirir, ve expr3 if {[(2) }] değerlendirir FALSE.

Durumunda:

expr1 ?: expr2

Ifadesi değeri değerlendirir expr1 expr1 true ve expr2, aksi halde:

PHP 5.3 'ten beri, bu üçlü operatörü orta bölümünü terk etmek mümkündür. İfade expr1 ?: expr3 döner expr1 expr1 TRUE değerlendirir, ve expr3, aksi takdirde.

Look here:

PHP 5.3 'ten beri, bu üçlü operatörü orta bölümünü terk etmek mümkündür. İfade ifade1:? Ifade3 döner expr1 DOĞRU olarak değerlendirirse Deyim1 ve ifade3 aksi.

Anonymous functions: Hayır, onlar en azından bu şekilde, (aşağıda örneklerde ilk nota bakın) before 5.3.0 yoktu:

function ($arg) { /* func body */ }

Tek yolu, daha yavaş oldukça hantal ve (çünkü işlev tanımları için dizeleri kullanarak) hata eğilimli olan create_function() idi.