PHP新特性中详细介绍的命名空间、字符和生成器

PHP新特性中详细介绍的命名空间、字符和生成器
本文主要介绍PHP的新特性的名称空间、字符和生成器相关内容,并与大家分享,供大家参考

1。命名空间

什么是名称空间

1)。命名空间是介绍在PHP 5.3中,类似于文件夹的功能。例如,在symfony框架的请求和响应都坐落在symfony的命名空间。
2)。名称空间应该始终位于PHP标签的底线。
3)命名空间of.php文件不同于操作系统的物理文件系统。这是一个虚拟概念。这是没有必要的对应于文件系统的目录结构。即便如此,PHP psr4自动加载标准件,绝大多数是与广泛使用的兼容,将处理到文件系统命名空间目录。
4)。名称空间只是PHP语言的标记,PHP解释器将类、接口、函数和常量名称作为前缀添加到PHP语言中。

为什么它需要名称空间

1)。命名空间允许程序像沙箱一样运行,并且可以与其他开发人员编写的代码一起使用。确保您自己的代码和项目可以与项目的第三方依赖性一起使用。

声明命名空间

1)。顶层名称空间通常用于设置顶级供应商名称。2)。供应商的命名空间必须有一个全局唯一性,和subnamespace并不重要,但它有助于组织工程的代码。

导入别名

1)。从PHP5.3,你可以导入的PHP类,接口,和其他的命名空间,并为他们创建一个别名。从php5.6,你可以导入的PHP函数和常数,并为它创建一个别名。
2)。当使用关键字输入代码,你不需要在开始添加符号,因为PHP假定进口是完全限定的命名空间,使用关键字必须出现在全球范围内,即,它不能出现在类或函数,因为关键是在编译的时候,然而,使用关键字可以用来导入其他命名空间的代码之后命名表。
从php5.6开始,我们可以导入函数和常量。
< PHP
使用函数命名空间函数名;

FunctionName();
它也可以导入到常量,
使用命名空间 cons_name常数;
回声cons_name;
函数和常量的别名与类名的创建相同。

最佳实践

1)PHP允许在PHP文件中定义多个命名空间,但这样做很容易使人困惑,并违背了一类文档的良好实践。2)。当在命名空间中命名全局命名空间的代码时,我们需要添加前缀,它告诉PHP我们需要在全局中找到这个类,比如PHP原生异常类。

自动加载

1)。命名空间由php-fig.奠定的坚实的基础psr4自动装载机

2。使用界面

1)。就像我可以选择开不同的车,因为他们都有方向盘,油门和刹车,燃料都是汽油。

三.字符

1)。形状是类的一部分实现(常量、属性方法)。它可以混合到一个或多个现有PHP类中。一个类有两个函数,显示类可以做什么(类似的接口),提供模块化实践(类似的类)。
2)。该字符允许两个不相关的类使用相同的属性和方法。
3)the.php解释器将复制粘贴文字到类的定义。

4。创建一个发电机

1)收益词关键字在正常函数中使用一次或多次,没有返回值,只生成一个值,而函数是一个生成器:
< PHP
功能mygenerator(){
yield'value1;
yield'value2;
}
当调用的函数发生器,PHP返回属于发电机类对象,这个对象可以用(一)迭代函数迭代,PHP需要的对象实例,计算发电机的价值提供的下一次迭代是恩典每个输出值后,发电机的内部状态总是停下来恢复开关之间,直到定义结束后或遇空语句,如返回:
< PHP
foreach(mygenerator yieldedvalue美元()){
回声yieldedvalue美元,php_eol;
}
上述示例将输出
value1
value2
2)。发电机是如何保存内存的生成一系列值(错误
功能makerange($长度){
数据集= { };
($ i = 0;$ i $ $长度;$ + +){
$;
}
返回数据集;
}

customrange美元= makerange(1000000);
foreach(customerange美元美元我){
echo $我,php_eol;
}
预先创建了一个大整数数组,并看到了使用生成器的示例。
功能makerange($长度){
($ i = 0;$ i $ $长度;$ + +){
收益1美元;
}
}

foreach(makerange(1000000)达我){
echo $我,php_eol;
}
在迭代的GB -函数的实际大小的文件,迭代器是一个大的传播。
功能演示(文件){
为处理= fopen(文件,'rb);
如果($ = false){
抛出异常();
}
是否 / /外汇经营资金()函数检测是否到达文件尾
而(外汇经营资金($处理)= false){
/ / fgetcsv()线,一次读一个CSV文件
产量fgetcsv($处理);
}
Fclose($处理)
}

foreach(GetRows(数据.csv)达行){
print_r(合排);
}
3)。生成器没有向PHP添加新功能,它需要在数据集中实现快进、快退和查找最佳功能,编写自己的类实现迭代器接口,或者在标准库中使用原生PHP迭代器。
本地的迭代器的链接

总结

以上就是本文的全部内容。希望本文的内容能给大家的学习工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部