1.标量类型声明
我们知道PHP是一种弱类型的编程措辞,因此没有供应任何方法来指定输入参数和返回值的类型,PHP7打破了这种现状,增加了对标量类型(int,float,string,bool)的声明支持,增加declare(strict_types=1)指令声明是否严格类型校验,我们来看一段代码:
123456declare(strict_types=1)functionadd(int$x,int$y):int{return$x+$y;}echo add(1,2);//int(7)有效的类型有:class/interface name、self、array,、callable、bool、float、int 和 string。
2. NULL合并运算符
PHP7中添加了NULL合并运算符,不要鄙视这个“??”,有了它我们就能很方便的获取一个参数,并能在其为空的情形下供应一个默认值。如何??运算符左侧值存在并且不为NULL,则返回左侧,否则将返回其右侧值。我们还是通过下面一段代码来体验一下??运算符的强大吧。
123456<?php// 获取user参数的值(如果为空,则用'nobody')// PHP5中我们这样来实现:$username=isset($_GET['user'])?$_GET['user']:'nobody';// PHP7中,利用??运算符更便捷:$username=$_GET['user']??'nobody';??>3.匿名类
顾名思义没有类名称,其声明和实例化是同时的,PHP7 支持通过 new class 来实例化一个匿名类,可以用来替代一些”用后即焚”的完全类定义。
123456echo(newclass(){publicfunctionmyMethod(){return\"大众Hello!\"大众;}})->myMethod();//Result: Hello!除此之外,先容一下PHP 原生 DOM 工具操作 XML
对付操作XML类型文件,PHP内置有一套DOM工具可以进行处理。对XML的操作,从创建、添加到修正、删除都可以利用DOM工具中的函数来进行。
创建
创建一个新的XML文件,并且写入一些数据到这个XML文件中。
1234567891011121314151617181920212223242526272829303132333435/ 创建xml文件/$info=array(array('obj'=>'power','info'=>'power is shutdown'),array('obj'=>'memcache','info'=>'memcache used than 90%'),array('obj'=>'cpu','info'=>'cpu used than 95%'),array('obj'=>'disk','info'=>'disk is removed'));//用来写入的数据$dom=newDOMDocument('1.0');$dom->formatOutput=true;//格式化$eventList=$dom->createElement('EventList');//创建根节点EventList$dom->appendChild($eventList);//添加根节点for($i=0;$i<count($info);$i++){$event=$dom->createElement('event');//创建节点event$text=$dom->createTextNode('PHP'.$i);//创建文本节点,值为PHP0,PHP1...$event->appendChild($text);//将文本节点添加到节点event,做为节点event的值$attr_obj=$dom->createAttribute('obj');//创建属性obj$attr_obj->value=$info[$i]['obj'];//为obj属性赋值$event->appendChild($attr_obj);//将obj属性添加到event节点中,做为event节点的属性$attr_info=$dom->createAttribute('info');$attr_info->value=$info[$i]['info'];$event->appendChild($attr_info);$eventList->appendChild($event);//将event节点添加到根节点EventList中}//echo $dom->saveXML();$dom->save('./t.xml');//保存信息到当前目录下的t.xml文件中上面的代码段可以创建一个XML文件,并添加一些信息到这个文件中,包括值和属性,终极形成的文件为当前目录下的t.xml,可以看一下它的内容。
1234567<?xml version=\"大众1.0\"大众?><EventList><event obj=\"大众power\"大众info=\"大众power is shutdown\公众>PHP0</event><event obj=\公众memcache\"大众info=\"大众memcache used than 90%\"大众>PHP1</event><event obj=\公众cpu\"大众info=\"大众cpu used than 95%\"大众>PHP2</event><event obj=\"大众disk\"大众info=\"大众disk is removed\公众>PHP3</event></EventList>读取XML信息&添加新的属性
以上一节创建的t.xml文件为操为难刁难象,读取出t.xml文件中的信息,并给节点添加一个新的属性count,其值为1。
1234567891011121314/ 读取xml文件信息,并添加新的属性/$dom=newDOMDocument('1.0');$dom->load('./t.xml');//加载要操作的文件$list=$dom->getElementsByTagName('event');//获取event节点列表foreach($list as$item){$attr_obj=$item->getAttribute('obj');//获取属性obj的值$attr_info=$item->getAttribute('info');echo\公众<pre>Object:$attr_obj;Info:$attr_info;Value:{$item->nodeValue}</pre>\"大众;$item->setAttribute('count',1);//添加新的属性count=1}$dom->save('./t.xml');//保存修正