【[ModernPHP]第二章新特性之五闭包】教程文章相关的互联网学习教程文章

Laravel 8新特性之“时间旅行”【代码】【图】

下面由Laravel教程栏目给大家介绍Laravel 8 的新特性“时间旅行” ,希望对需要的朋友有所帮助!Laravel 8 带来的另一个有帮助的小特性是在测试环节,你可以流畅的进行时间穿梭。这个特性可以让你更容易对一些情况进行测试:例如当免费试用结束时会发生什么,或者下一个账单日期会发生什么,等等……enunomaduro 在 Twitter 上分享了一个简单的示例,演示了这个新特性的用法:// 穿越到 5 分钟后 $this->travel(5)->minutes; $this...

php7函数,声明,返回值等新特性介绍

使用 ... 运算符定义变长参数函数 (PHP 5 >= 5.6.0, PHP 7) 现在可以不依赖 func_get_args(), 使用 ... 运算符 来实现 变长参数函数。 <?php function f($req, $opt = null, ...$params) {// $params 是一个包含了剩余参数的数组printf($req: %d; $opt: %d; number of params: %d."\n",$req, $opt, count($params)); } f(1); f(1, 2); f(1, 2, 3); f(1, 2, 3, 4); f(1, 2, 3, 4, 5); ?>以上例程会输出:$req: 1; $opt: 0; number ...

Laravel5.5新特性之友好报错以及展示详解【图】

前言 期待已久的laravel5.5 很快将为大家呈现,本文将给大家详细介绍关于Laravel5.5新特性之友好报错及展示的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍:Laravel5.5 获取源代码如今Laravel5.5官网并未正式发布,预计就是这几天的事情了!开发者是可以通过以下命令获取laravel5.5源码的:laravel new laravel55demo --dev 通过命令安装完成后可以使用php artisan --version 查看版本 Laravel5.5 友好的...

Netbeans 8.2与PHP相关的新特性介绍【图】

Netbeans 8.2在这个国庆期间终于发布了,其与PHP相关的新特性主要有: 支持PHP 7 详见前面翻译的一篇文章:Netbeans 8.2将支持PHP 7 编辑器功能增强 文档好像没有明确说明,我也还没有发现。 PHP项目支持自定义注解 操作如下图:然后,当你在编写代码注解时,就可以得到刚才自定义的注解提示支持。支持Symfony 3 没什么人Care吧。 支持PHPUnit 5 PHPUnit 5系列版本已经是基于PHP命名空间化重构的版本了。 支持 phpcs.xml 配置文件 ...

PHP7新特性foreach 修改示例介绍

一、foreach()循环对数组内部指针不再起作用,在PHP7之前,当数组通过foreach迭代时,数组指针会移动。现在开始,不再如此,见下面代码。。 $array = [0, 1, 2]; foreach ($array as &$val) { var_dump(current($array)); }PHP5运行的结果会打印int(1) int(2) bool(false) PHP7运行的结果会打印三次int(0),也就是说数组的内部指针并没有改变。 之前运行的结果会打印int(1), int(2)和bool(false) 二、按照值进行循环的时候,foreac...

我整理的PHP 7.0主要新特性

截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7.0新特征吧。 1.标量参数类型声明现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable 两种风格:强制转换模式(默认)与严...

ThinkPHP3.2.3数据库设置新特性

ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。 首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:代码如下: /* 数据库设置 */ DB_TYPE => , // 数据库类型 DB_HOST => , // 服务器地址 DB_NAME => , // 数据库名 DB_USER => , // 用户名 DB_PWD ...

ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码

在ThinkPHP3.1版本之前,如果需要设置自动验证或者自动完成,必须定义在模型中,或者通过setProperty方法动态设置属性来完成,但是这样做的缺点是不太方便动态改变和调整 。 ThinkPHP3.1版本在模型类中增加auto和validate两个连贯操作,用于动态设置自动完成和自动验证规则,现在可以在Action中使用,示例代码如下: $validate = array(array(verify,require,验证码必须!), array(name,,帐号名称已经存在!,0,unique,1), ); $auto...

ThinkPHP3.1新特性之动态设置自动完成和自动验证示例

以往在ThinkPHP3.1版本之前,如果需要设置自动验证或者自动完成,一般来说必须定义在模型中,或者通过setProperty方法动态设置属性来完成,这样做的缺点是不太方便动态改变和调整。 ThinkPHP3.1版本在模型类中增加auto和validate两个连贯操作,用于动态设置自动完成和自动验证规则,现在可以在Action中使用: $validate = array(array(verify,require,验证码必须!), array(name,,帐号名称已经存在!,0,unique,1), ); $auto = arra...

ThinkPHP3.1新特性之查询条件预处理简介

以往的ThinkPHP3.0版本对数组方式的查询条件会进行安全过滤(这是由于3.0强制使用了字段类型检测,所以数组方式的查询条件会强制转换为字段的设定类型),但是3.0版本并不支持字符串条件的安全过滤。而ThinkPHP3.1版本则增加了对条件字符串进行预处理的支持,让ORM的安全性更加得以保证。 一、使用where方法 Model类的where方法支持字符串条件预处理,使用方式: $Model->where("id=%d and username=%s and xx=%f",array($id,$user...

ThinkPHP3.1新特性之字段合法性检测详解

ThinkPHP3.1版增加了表单提交的字段合法性检测,可以更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。 表单字段合法性检测需要使用create方法创建数据对象的时候才能生效,具体有两种方式: 一、属性定义 可以给模型配置insertFields 和 updateFields属性用于新增和编辑表单设置,使用create方法创建数据对象的时候,不在定义范围内的属性将直接丢弃,避免表单提交非法数据。 insertFields 和 updateFields属性的...

ThinkPHP3.1新特性之G方法的使用

长期以来ThinkPHP都是需要通过debug_start、debug_end方法甚至Debug类才能完成那些调试的功能,而在ThinkPHP3.1版本中,这些复杂的功能被一个简单的G方法取代了,这不可不谓是一次华丽升级。 G方法的作用包括标记位置和区间统计两个功能,下面来看下具体用法: 1.标记位置 G方法的第一个用法就是标记位置,例如: G(begin);表示把当前位置标记为begin标签,并且记录当前位置的执行时间,如果环境支持的话,还能记录内存占用情况。可...

ThinkPHP3.1新特性之多层MVC的支持

1.模型(Model)层:默认的模型层由Model类构成,但是随着项目的增大和业务体系的复杂化,单一的模型层很难解决要求,从3.1开始推出了多层Model的支持,设计思路很简单,不同的模型层仍然都继承自系统的Model类,但是在目录结构和命名规范上做了区分,例如在某个项目设计中需要区分数据层、逻辑层、服务层等不同的模型层,我们可以在项目的Lib目录下面创建Model、Logic和Service目录,把对用户表的所有模型操作分成三层:数据层:M...

ThinkPHP3.1新特性之命名范围的使用

ThinkPHP3.1的命名范围功能,给模型操作提供了一系列的(连贯操作)封装,让你更方便的查询和操作数据。下面我们就来具体了解下这一用法。 1.定义属性 要使用命名范围功能,主要涉及到模型类的_scope属性定义和scope连贯操作方法的使用。 我们首先定义_scope属性: class NewsModel extends Model {protected $_scope = array(// 命名范围normalnormal=>array(where=>array(status=>1),),// 命名范围latestlatest=>array(order=>cr...

ThinkPHP3.1新特性之多数据库操作更加完善

通常情况下,如果一个应用只是操作同一个数据库(或者分布式数据库)的话,你只需要在项目配置文件中定义数据库连接信息即可。这里说的多数据库操作一般指的是在一个应用中会操作不同的数据库(包括同类型的和不同类型的数据库),甚至包括动态切换多数据库的情况。 对于早期版本的ThinkPHP来说,切换数据库需要使用高级模型,而现在的3.1版本则可以更加轻松的解决了。 新版对多数据的支持有下面几种方式,开发人员可以根据实际情况...