1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP5.0到PHP7常用语法糖整理

作者:用户 来源:互联网 时间:2017-11-30 15:18:24

php5.0语法常用php7整理

PHP5.0到PHP7常用语法糖整理 - 摘要: 本文讲的是PHP5.0到PHP7常用语法糖整理, 整理一下从PHP5开始的一些语法糖,也就是PHP版本的一些差异改变。 数据类型(Boolean,String,Array) 1.Boolean:空对象在4.0以后都视为true。 2.String:内部结构类似array,可以像arra

整理一下从PHP5开始的一些语法糖,也就是PHP版本的一些差异改变。


数据类型(Boolean,String,Array)

1.Boolean:空对象在4.0以后都视为true。


2.String:内部结构类似array,可以像array一样访问

$str = 'abcde';
echo $str[1];//b
echo $str{2};//c 全局变量SERVER_ADDRIP地址 127.0.0.1
SERVER_NAME主机名 localhost
SERVER_SOFTWARE服务器类型 nginx
REMOTE_ADDR客户端IP. 127.0.0.1
$_FILES['file']['name']图片原名称
$_FILES['file']['type']图片MIME类型
$_FILES['file']['size']图片大小
$_FILES['file']['tmp_name']服务器端临时名称

常量


5.3之后后可以使用const来定义常量


const DEBUG = true;

运算符


<=>比较运算符,7.0之后支持


就是看两个表达式值的大小,三种关系: = 返回0、< 返回-1、 > 返回 1


// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

空接操作符:


??空合并运算符PHP7特性。


$name = $_POST['name'] ?? '';//如果前面的值不为null,则返回本身,否则返回后面的值
$name = $_POST['name'] ?: ''; ////如果前面的值不为null,则返回本身,否则返回后面的值

流程控制:goto 5.3版本以上有效


操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无法跳入到另一个函数。也无法跳入到任何循环或者 switch 结构中。可以跳出循环或者 switch,通常的用法是用 goto 代替多层的 break。


goto next;
echo 'abc';
next:
echo 'def';
//输出 def
函数

匿名函数:Anonymous functions 5.3版本有效


从父作用域中继承变量怎么办


//这里定义一个默认的输出名字的方式
$args = 'My name is ';
//使用 use() 来引用父级的变量,最后输出结果与上边一致
$test = function($name='he') use($args ) {
echo $tpl.$name;
};
$test();

需要注意的是,闭包函数的父作用域,是定义它的作用域,不是调用的作用域


类和对象

多继承实现方式trait:


1.trait 和 class 是相似的概念,但不能被实例化 2.一个类可以使用多个trait,优先级是class>trait>父类继承的方法 3.使用insteadof来解决 tarit 冲突 4.使用as,来修改方法的访问控制 5.在trait中也可以使用tarit。和在class中用法一致


trait A {
public function say(){
echo 'traitA';
}
}
trait B {
public function say(){
echo 'trait B';
}
public function walk(){
echo 'walk B';
}
}
class Person {
use A, B{
B :: say insteadof A; // 使用B的say方法代替了A的say方法
walk as protected;// 将walk 设置为受保护的
}}
$obj = new Person;
$obj->say();// echo trait A;
$obj->walk(); // 提示不能访问一个受保护的方法

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 5.0 , 语法 , 常用 , php7 整理 ,以便于您获取更多的相关知识。