PHP学习-chapter2之php的特性 chapter one php代码学习 学习php要多
- 2.1命名空间:
- 避免冲突,放在
- 引用命名空间:use namespace Symphony/HttpFoundation;
- 声明命名空间:namespace Oreilly;
- 引用命名空间中的某一类:use Oreilly/con as a;
- 引用命名空间中的函数:use func Oreilly/functionName;
- 引用命名空间中的常量:user constant Rreilly/CONST_NAME;
- 多重导入:文件头多个use语句
-
在一个文件中使用多个命名空间
- namespace Foo{}
- namespace Bar{}
- 全局命名空间:没有命名空间的代码,例如php原生的Exception类,前面家\访问可以做到告诉php别再当前命名空间中查找,要到全局空间中查找,$e = new \Exception()
- 完全限定的php类名:(命名空间+类名)
- 2.2使用接口
-
接口定义:interface Documentable{
- public function getId();
- public function getContent();
- }
-
接口实现:class HtmlDocument implements Documentable{
- public function _construct(){}
-
public function getId(){
- return $this->url;
- }
- public function getContent(){}
- }
- 2.3性状trait
使用性状的原因,两个类需要十分相似的功能结构,如果采用继承的方式实现,则会破坏原本的类层次结构,如果使用接口实现,则会导致代码重复,因此引入性状
-
定义性状:trait MyTrait{
- //性状的实现
- }
-
性状的使用:class MyClass{
- use MyTrait;
- }
- 2.4生成器generator,迭代器
- 生成器即一个php函数,并使用yield关键字,生成器不返回值,只产出值,只能向前进的迭代器,适用于迭代大型的数据集。
-
生成器的创建方式:function myGenerator(){
- yield ‘value1’;
- yield ‘value2’;
- }
- 生成器的使用:PHP返回Generator类的对象,有利于节省内存,例如需要产生一个10000范围内的整数,一种方式是在内存中创建10000个整数,而采用生成器迭代,每次只需要占用一个整数的内存即可。
-
foreach(myGenerator() as $yieldValue){
- echo $yieldValue;//输出value1,value2
- }
- 2.5闭包和匿名函数
- 闭包:创建时封装周围状态的函数,即使闭包所在的环境不存在了,闭包中封装的状态依然存在
- 匿名函数:没有名称的函数,可以付值给变量
- 闭包和匿名函数其实是对象,属于Closure类型的实例
- 2.6创建闭包
-
只要变量名后面有(,php会查找_invoke()方法,没有闭包之前php只能够进行具名回调
-
$numbersPlusOne = array_map(function
($number) {
- return $number + 1;
- }, [1,2,3]);
- print_r($numbersPlusOne); // 输出 --> [2,3,4]
-
$numbersPlusOne = array_map(function
($number) {
-
闭包的附加状态:bindTo()活着use关键字
-
使用use关键字:function
enclosePerson($name) {
-
return function ($doCommand)
use ($name) { //封装了name参数
- return sprintf('%s, %s', $name, $doCommand);
- };
-
return function ($doCommand)
use ($name) { //封装了name参数
- }
-
使用 bindTo() 方法附加闭包的状态 :
- $this->routes[$routePath] = $routeCallback->bindTo($this,__CLASS__);
- 第二个参数是将此闭包绑定的对象类型
-
使用use关键字:function
enclosePerson($name) {
- 2.7字节码缓存Zend OPcache
- 2.8PHP内置服务器
php -S localhost:4000
如果需要在别的机器上访问此服务器,可以设置为php -S 0.0.0.0:4000
服务器配置:php -S localhost:4000 -c app/config/php.ini
由于内置的服务器不具有.htaccess文件,因此不支持很多PHP框架,使用内置的路由脚本来替代
php -S localhost:4000 router.php
以上就介绍了PHP学习-chapter2之php的特性,包括了chapter,php学习方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

随着互联网的发展,动态网页的需求越来越大。而PHP作为一种主流的编程语言,被广泛应用于Web开发中。那么,对于初学者来说,如何学习PHP开发呢?一、了解PHP的基础知识PHP是一种脚本语言,可以直接嵌入HTML代码中,通过Web服务器进行解析运行。因此,在学习PHP之前,可以先了解HTML、CSS、JavaScript等前端技术基础,以便更好地理解PHP的作

PHP学习笔记:网络爬虫与数据采集引言:网络爬虫是一种自动从互联网上抓取数据的工具,它可以模拟人的行为,浏览网页并收集所需的数据。PHP作为一种流行的服务器端脚本语言,在网络爬虫和数据采集领域也发挥了重要的作用。本文将介绍如何使用PHP编写网络爬虫,并提供实际的代码示例。一、网络爬虫的基本原理网络爬虫的基本原理是通过发送HTTP请求,接收并解析服务器响应的H

PHP学习笔记:模块化开发与代码复用引言:在软件开发中,模块化开发与代码复用是相当重要的概念。模块化开发可以将复杂的系统分解成可管理的小模块,提高开发效率和代码可维护性;而代码复用则可以减少冗余代码,提高代码的重用性。在PHP开发中,我们可以通过一些技术手段来实现模块化开发和代码复用。本篇文章将介绍一些常用的技术和具体代码示例,帮助读者更好地理解和应用这些概

PHP学习笔记:性能分析与调优引言:在Web开发中,性能是一个非常关键的因素。一个高性能的网站能够提供更好的用户体验,提高用户留存率,增加业务收入。而在PHP开发中,性能的优化是一个常见且重要的问题。本文将介绍PHP中性能分析与调优的方法,并提供具体的代码示例,帮助读者更好地理解和运用这些技巧。一、性能分析的工具Xdebug扩展Xdebug是一款功能强大的P

2023年,学习PHP的最佳途径是什么?随着互联网的快速发展,计算机编程成为了一项具有极高就业前景的技能。而在众多的编程语言中,PHP是一门被广泛应用于网络开发的语言。想要学习PHP,了解最佳的学习途径是非常重要的。PHP是一种开源的、服务器端脚本语言,它被用于开发动态网站和应用程序。相比于其他语言,PHP具有较低的学习曲线和广泛的应用领域,使其成为初学者的

PHP学习笔记:表单处理与数据验证在网页开发中,表单是用户与网站进行交互的重要组件之一。当用户在网站上填写表单并提交数据时,网站需要对提交的数据进行处理和验证,确保数据的准确性和安全性。本文将介绍如何使用PHP来处理表单和进行数据验证,并提供具体的代码示例。表单提交和数据预处理在HTML中,我们需要使用<form>标签来创建一个表单,并指定表单的

学习PHP中的视频特效和滤镜处理函数方法PHP是一种强大的编程语言,广泛应用于Web开发领域。随着网站设计的发展,视频特效和滤镜处理越来越受欢迎。本文将介绍如何使用PHP实现视频特效和滤镜处理,以及一些常用的函数方法。一、安装ffmpeg扩展要处理视频,我们需要安装ffmpeg扩展。通过该扩展,我们可以在PHP中直接调用ffmpeg命令进行视频处理。安装过程

PHP学习笔记:前后端分离与API设计概述:随着互联网的不断发展和用户需求的不断增加,前后端分离的开发模式越来越受到开发者的重视。前后端分离是指将前端和后端的开发分离开来,通过API进行数据交互,实现开发的高效性和灵活性。本文将介绍前后端分离的概念,以及如何设计API。前后端分离的概念:传统的Web开发模式是前后端耦合的,即前端和后端的开发是在同一个项目中进
