PHP 5.3,是PHP編程語言的一個版本,于2009年6月30日發布,該版本的主要特點是增加了命名空間的支持和匿名函數的支持。PHP 5.3也是本地開發環境MAMP默認版本。
命名空間的引入,為php的代碼組織提供了更好的支持。采用命名空間可以防止相同名稱的類、函數等發生沖突,提高代碼復用性。例如,我們在php 5.3中定義了一個命名空間:
```php
namespace MyProject;
```
則在該命名空間內的代碼需要加上命名空間前綴,如下所示:
```php
$object = new MyProject\MyClass;
```
當需要使用其他命名空間的代碼時,也需要前綴,如下所示:
```php
$pdo = new \PDO();
```
此外,PHP 5.3也增加了對匿名函數的支持。匿名函數可以在定義位置被直接調用,也可以作為參數傳遞給其他函數,如下所示:
```php
$greeting = function($name)
{
return "Hello, $name";
};
echo $greeting("John"); // 輸出 "Hello, John"
```
PHP 5.3新增的其他特性還有:
1. 魔術方法__invoke():允許對象被作為函數調用;
2. 魔術方法__callStatic():允許靜態方法被調用時觸發;
3. 新增了curl_multi_select()函數,解決了在同時使用curl批處理和讀取標準輸入時,select()無法阻塞的問題;
4. 新增了file_put_contents()和file_get_contents()函數;
5. 新增了絕大多數的GMP函數;
6. 新增了phar元數據支持。
此外還有其他有趣的特性值得一提:
如下面的例子:
```php
// 1. 魔術方法__invoke()
class Foo
{
public function __invoke()
{
echo "I am invoked";
}
}
$foo = new Foo();
$foo();
// 2. 匿名函數作參數
function map(array $arr, $func)
{
$result = array();
foreach ($arr as $item) {
$result[] = $func($item);
}
return $result;
}
$squares = map(range(1, 5), function($n) {
return $n * $n;
});
print_r($squares);
// 3. 魔術方法__callStatic()
class Bar
{
public static function __callStatic($name, $args)
{
echo "Calling static method '$name' with arguments: ";
print_r($args);
}
}
Bar::hello("John", "Doe");
// 4. 使用file_put_contents()和file_get_contents()
file_put_contents("example.txt", "Hello, World!");
echo file_get_contents("example.txt");
```
以上就是PHP 5.3的一些基本特性和用法。通過這些功能,我們可以更好地組織我們的代碼和提高開發效率。
上一篇php 5.3 安裝包
下一篇css3 繪制arrow