<?php
/*
* PHP 命名空间可以解决以下两类问题:
* 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
* 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
* */
namespace News\Space;
include './Mysql.php';
class Space {
}
new \News\Space\Mysql;
/*
* 2.三元运算符增加了一个快捷书写方式
* */
//原格式
$pag = 2;
$pag = $pag ? $pag : 1;
//新格式
$pag = $pag ? : 1;
echo $pag, '<br/>';
/*
*3.匿名函数
* 好处是把主动权交给用户 让他自己操作
* */
$arr = array(1, 2, 3);
function curd($arr, $callback) {
foreach ($arr as $k => $v) {
$arr[$k] = $callback($v);
}
return $arr;
}
print_r(curd($arr, function($v) {
return $v + 1;
}));
echo '<br/>';
print_r(curd($arr, function($v) {
return $v * 2;
}));
echo '<br/>';
/*
*4.PHP 5.3.0中增加了一个static关键字来引用当前类,即实现了延迟静态绑定:
* */
class A {
public static function who() {
echo 'parent';
}
public static function test() {
// 这里实现了延迟的静态绑定
static::who();
}
}
class B extends A {
public static function who() {
echo 'son';
}
}
B::test();
echo '<br/>';
/*
* 5.在类外也可使用const来定义常量
* */
const PI = 3.14;
echo PI, '<br/>';
/*
* 6.goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,
* 而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,
* 也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。
* 也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,
* 通常的用法是用 goto 代替多层的 break。
* */
goto a;
phpinfo();
a:
echo 'Bar', '<br/>';
/*
* 7.PHP中原本有一个魔术方法__call(),当代码调用对象的某个不存在的方法时该魔术方法会被自动调用。
* 新增的__callStatic()方法则只用于静态类方法。当尝试调用类中不存在的静态方法时,__callStatic()魔术方法将被自动调用。
* */
class testClass1 {
public function __construct() {
echo 2, '<br/>';
}
public function __invoke() {
echo 1, '<br/>';
}
}
$n = new testClass1;
$n();
class testClass2 {
public static function __callStatic($name, $arguments) {
echo '调用类中不存在的静态方法为', $name, '<br/>';
}
}
testClass2::test();
/*
* 8.支持动态调用静态方法
* */
class Test1 {
public static function t() {
echo '5.3以后支持动态调用静态方法', '<br/>';
}
}
$t1 = 't';
Test1::$t1();
/*
* 如果出现报错 在当前目录建立一个文件为Mysql.php
* 内容如下:
* namespace News\Space;
class Mysql{
}
* PHP 5.3是一个有很大改进的PHP版本,但它仍然遵循着PHP的设计原则—强大、易用。
* PHP5.3一方面在面向对象开发等方面有所加强,使PHP更合适于进行企业应用开发,
* 另一方面也增加了不少实用的语法特性和新扩展。php7更猛
*
* */
?>
php5.3新特性
最新推荐文章于 2021-03-11 18:51:55 发布