PHP 5.3/5.4 features
Matteo Magni @ilbonzo
23 gennaio 2013
PugBO
Matteo Magni @ilbonzo
23 gennaio 2013
PugBO
Problema
Zend/
Search/
Lucene/
Analysis/
Analyzer.php
class Zend_Search_Lucene_Analysis_Analyzer {
...
}
namespace Silex;
class Application ...
{
const VERSION = '1.0-DEV';
use Silex\Application;
use Silex\Provider\TwigServiceProvider;
use Silex\Provider\UrlGeneratorServiceProvider;
use Silex\Provider\ValidatorServiceProvider;
$app = new Application();
$app->register(new UrlGeneratorServiceProvider());
echo preg_replace_callback('~-([a-z])~', function ($match) {
return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
$greet('PHP');
trait Singleton {
public static function getInstance() { ... }
}
class A {
use Singleton; // ...
}
class B extends ArrayObject {
use Singleton; // ...
}
// Singleton method is now available for both classes
A::getInstance();
B::getInstance();
Possiamo riusare del codice attraverso l’implementazione di un trait, senza usare l’ereditarietà e la composizione
$a = [1, 2, 3, 4];
or $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
Possiamo accedere direttamente a un elemento di un array qualora esso fosse il risultato di una funzione o metodo senza doverlo assegnare a una nuova variabile.
function fruits() {
return ['apple', 'banana', 'orange'];
}
echo fruits()[0]; // Outputs: apple
% php -S localhost:8000
PHP 5.4.0 Development Server started at Tue Jan 22 22:27:09 2013
Listening on localhost:8080
Document root is /home/bonzo
Press Ctrl-C to quit.