![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
cwl_java
这个作者很懒,什么都没留下…
展开
-
PHP-swoole搭建websocket服务
五、搭建websocket服务5.1、简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。websocket解决服务器端与...原创 2020-03-30 10:31:00 · 1071 阅读 · 0 评论 -
PHP-swoole搭建Web服务器
四、搭建Web服务器4.1、性能对比使用apache bench工具对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100用户,共100万次Http请求的基准测试中,QPS对比如下:QPS数值越大,WEB性能越好.4.2、构建web服务器Swoole1.7.7版本增加了内置Http服务器的支持,通过几行代码即可写...原创 2020-03-30 10:27:09 · 693 阅读 · 0 评论 -
PHP-swoole快速起步
三、快速起步3.1、进程管理swoole是一个多进程,多线程的服务master主进程负责创建多个线程来接受和返回用户请求,同时生成一个manager进程,manager进程负责生成和管理N多个worker和task进程,worker和task进程是负责干活的3.2、环境准备使用ftp或sftp上传源代码,使用phpstorm提供ftp来直接保存即上传代码。配置phpstorm支持ft...原创 2020-03-30 10:23:42 · 530 阅读 · 0 评论 -
PHP-swoole下载安装
二、下载安装swoole是一个PHP的扩展,所以安装的方式和安装其它的PHP扩展的方式一样。swoole不支持windows安装,没有windows扩展。 linux系统或Mac系统 Docker也是可以的2.1、下载地址Github:https://github.com/swoole/swoole-src/tagsphp官方扩展库:http://pecl.php.net/package/...原创 2020-03-30 10:17:09 · 1799 阅读 · 0 评论 -
PHP-swoole简介
一、简介作者:陈文龙网址:http://www.swoole.com/Swoole:面向生产环境的 PHP 异步网络通信引擎,Swoole 使用纯 C 语言编写,Swoole是PHP一个扩展的形式。Swoole可以使 PHP开发人员编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、...原创 2020-03-30 10:11:16 · 474 阅读 · 0 评论 -
PHP-MVC框架类实现
1.4 框架类实现1.4.1 定义路径常量由于文件路径使用频率很高,而且路径比较长,所以将固定不变的路径定义成路径常量知识点1、getcwd():入口文件的绝对路径2、windows下默认的目录分隔符是`\`,Linux下默认的目录分隔符是`/`。DIRECTORY_SEPARATOR常量根据不同的操作系统返回不同的目录分隔符。代码实现在Core文件夹下创建Framework....原创 2020-03-27 14:40:26 · 399 阅读 · 0 评论 -
PHP-MVC添加命名空间
1.3 添加命名空间通过文件目录地址做命名空间,这样获取了命名空间就能知道文件存放的地址。Model.class.phpnamespace Core;class Model { ...MyPDO.class.phpnamespace Core;class MyPDO{ ...ProductsModel.class.php<?phpnamespace ...原创 2020-03-27 14:38:55 · 380 阅读 · 0 评论 -
PHP-MVC框架目录
1.2 框架目录1.2.1 创建目录结构1.2.2 文件分类存放将上一讲的文件分类存放到不同的目录中将文件存放到不同的目录以后,由于类文件地址发生了变化,所以无法完成自动加载类,那么今天的主要任务就是围绕如何实现类的自动加载展开。由于每次都请求入口文件,所以”.“表示入口文件所在的目录...原创 2020-03-27 14:37:41 · 535 阅读 · 0 评论 -
PHP-MVC演化
1.3 MVC演化1.3.1 显示商品1、导入products表的数据2、将上一讲的MyPDO类拷贝到站点下,改名为MyPDO.class.php,这个文件中只存放MyPDO类3、在站点下创建index.php,代码如下<?php//自动加载类spl_autoload_register(function($class_name){ require "./{$class_n...原创 2020-03-27 14:32:44 · 330 阅读 · 0 评论 -
PHP-MVC介绍
1.2 MVC介绍1、MVC是一个编程思想,是一种设计模式2、思想:将一个功能分解成3个部分,M V CModel(模型):处理与数据有关的逻辑View(视图):显示页面Controller(控制器):处理业务逻辑小结:1、控制器用来接收请求2、以后不能直接请求模型和视图...原创 2020-03-27 14:31:36 · 376 阅读 · 0 评论 -
PHP-分页
1.6 分页1.6.1 分析-- 1、获取当前页码的数据页码 SQL语句1 select * from products limit 0,102 select * from products limit 10,103 select * from products limit 20,10结论:$pageno:页码$startno:起始位置$pagesize=10...原创 2020-03-27 14:26:28 · 355 阅读 · 0 评论 -
PHP-PSR编码规范
1.5 PSR编码规范1.5.1 概述PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。网址:http://psr.phphub.org/1.5.2 PSR-1 基础编码规范1、PHP代码文件 必须 以...原创 2020-03-27 14:25:37 · 353 阅读 · 0 评论 -
PHP-迭代器
1.4 迭代器1.4.1 遍历数组手动遍历数组步骤:1、复位数组指针 reset()2、检查指针是否合法 获取当前指针,如果不为null就是合法的3、获取当前值 current()4、获取当前键 key()5、指针下移 next()代码实现<?php$stu=['tom','berry','ketty','rose'];reset($stu); /...原创 2020-03-27 14:24:39 · 370 阅读 · 0 评论 -
PHP-trait(原型)
1.3 trait(原型)trait 为了减少单继承语言的限制,可以在不同层次结构内独立的类中复用类的方法集。<?php//原型trait A{ public function getInfo() { echo '锄禾日当午<br>'; }}//使用原型class Student { use A; //代码复用}//测试$stu=new Stude...原创 2020-03-27 14:23:44 · 252 阅读 · 0 评论 -
PHP-命名空间
1.2 命名空间1.2.1 介绍在一个大的项目中,可能会遇到同名的类、函数、常量,为了区分这些元素,我们可以将这些元素分别存放到不同的命名空间中。1、命名空间就是包,用来存放项目中的类、函数、常量2、通过namespace关键字来声明命名空间1.2.2 声明命名空间<?phpnamespace China; //定义命名空间function getInfo() { ...原创 2020-03-27 14:22:33 · 331 阅读 · 0 评论 -
PHP-封装MySQL的单例
1.9 封装MySQL的单例1.8.1 分析1、实现单例2、连接数据库3、对数据进行操作1.8.2 步骤第一步:实现单例第二步:初始化参数第三步:连接数据库第四步:操作数据1、执行数据操作语句(增、删、改)2、执行数据查询语句 a) 返回二维数组 b) 返回一维数组 c)返回一行一列1.8.3 代码实现第一步:实现单例<?phpclass ...原创 2020-03-27 14:15:26 · 571 阅读 · 0 评论 -
PHP-遍历对象
1.8 遍历对象通过foreach遍历对象<?phpclass Student { public $name='tom'; protected $sex='男'; private $age=22; public function show() { foreach($this as $k=>$v) { echo "{$k}-{$v}<br>"; ...原创 2020-03-27 14:14:22 · 350 阅读 · 0 评论 -
PHP-模拟方法重载
1.7 模拟方法重载通过魔术方法模拟方法重载<?phpclass Math { public function __call($fn_name,$fn_args) { $sum=0; foreach($fn_args as $v) { $sum+=$v; } echo implode(',',$fn_args).'的和是:'.$sum,'<br>'...原创 2020-03-27 14:13:29 · 353 阅读 · 0 评论 -
PHP-魔术方法
1.6 魔术方法已经学习的魔术方法__construct()__destruct()__clone()1.6.1 __tostring()、__invoke()__tostring():将对象当成字符串使用的时候自动调用__invoke():将对象当成函数使用的时候自动调用<?phpclass Student { //把对象当成字符串使用的时候自动执行 publi...原创 2020-03-27 14:12:28 · 252 阅读 · 0 评论 -
PHP-序列化与反序列化
1.5 序列化与反序列化在PHP中,数组和对象无法保存,如果需要保存就要将数组或对象转换成一个序列。序列化:将数组或对象转换成一个序列(serialize)反序列化:将序列化的字符串转换成数组或对象。(unserialize)1.5.1 数组的序列化与反序列化<?php//数组的序列化/*$stu=['tom','berry','ketty'];$str=seriali...原创 2020-03-27 14:11:28 · 295 阅读 · 0 评论 -
PHP-设计模式
1.4 设计模式1.4.1 单例模式一个类只能有一个对象应用场景:多次请求数据库只需要一个连接对象。实现:三私一公1、私有的静态属性用来保存对象的单例2、私有的构造方法用来阻止在类的外部实例化3、私有的__clone阻止在类的外部clone对象4、公有的静态方法用来获取对象的单例代码<?php//三私一公class DB { //静态的属性用来保存对象的单例...原创 2020-03-27 14:09:52 · 243 阅读 · 0 评论 -
PHP-深拷贝与浅拷贝
1.3 clone和__clone()思考:创建对象的方式有哪些?方法一:实例化方法二:克隆例题<?phpclass Student { //执行clone指令的时候自动执行 public function __clone() { echo '正在克隆对象<br>'; }}$stu1=new Student;$stu2=clone $stu1...原创 2020-03-27 14:08:42 · 353 阅读 · 0 评论 -
PHP-自动加载类
1.2 自动加载类在项目开发中,因为一个文件中只能写一个类,并且在执行过程中会有很多的类参与,如果一个一个的加载很麻烦,所以,就需要一个机制实现在PHP执行过程中自动加载需要的类。1.2.1 类的规则一个文件中只能放一个类(必须)文件名和类名同名(必须)类文件以.class.php结尾(不是必须)1.2.2 手动加载类1、创建Goods.class.php页面<?p...原创 2020-03-27 14:07:07 · 315 阅读 · 0 评论 -
PHP-打印回形
2、打印回形<body><style type="text/css"> body{ text-align:center; font-size:25px; } span{ width:30px; height:10px; display:inline-block; }</style><?phpfor($i=1; $i&l...原创 2020-03-27 14:03:14 · 282 阅读 · 0 评论 -
PHP-打印菱形
1.9 打印菱形1、打印菱形<body><style type="text/css"> body{ text-align:center; font-size:25px; } span{ width:30px; height:10px; display:inline-block; }</style><?phpfor(...原创 2020-03-27 14:02:20 · 2809 阅读 · 1 评论 -
PHP-异常处理
1.10 异常处理集中处理在代码块中发生的异常。在代码块中发生了异常直接抛出,代码块中不处理异常,将异常集中起来一起处理。1.10.1 使用的关键字try:监测代码块catch:捕获异常throw:抛出异常finally:无论有无异常都会执行,可以省略Exception:异常类语法结构try{ //检测代码}catch(Exception $ex){ //捕获异常...原创 2020-03-27 14:00:53 · 325 阅读 · 0 评论 -
PHP-方法绑定
1.9 方法绑定这是了解的内容,PHP7.0支持作用:将方法绑定到对象上,并调用语法:闭包->call(对象):将闭包绑定到对象上,并调用在PHP中匿名函数称为闭包例题<?php$lang='en';//类class Student{}//匿名函数if($lang=='ch'){ $fun=function(){ echo '我是一名学生'; };...原创 2020-03-27 13:59:49 · 598 阅读 · 0 评论 -
PHP-匿名类
1.8 匿名类这是了解的内容,PHP7.0支持<?php$stu=new class { public $name='tom'; public function __construct() { echo '构造函数<br>'; }};echo $stu->name;/*运行结果;构造函数tom*/小结:1、如果类只被实例化一次就可以使用匿...原创 2020-03-27 13:58:55 · 326 阅读 · 0 评论 -
PHP-接口
1.7 接口(interface)1.7.1 接口如果一个类中所有的方法是都是抽象方法,那么这个抽象类可以声明成接口接口是一个特殊的抽象类,接口中只能有抽象方法和常量接口中的抽象方法只能是public,可以省略,默认也是public的通过implements关键字来实现接口不能使用abstract和final来修饰接口中的抽象方法。<?php//声明接口interf...原创 2020-03-27 13:56:51 · 246 阅读 · 0 评论 -
PHP-类常量
1.6 类常量类常量是const常量<?phpclass Student { //public const ADD; //7.1以后才支持访问修饰符 const ADD='地址不详';}echo Student::ADD;问题:define常量和const常量的区别?答:const常量可以做类成员,define常量不可以做类成员。问题:常量和静态的属性的区别?答:...原创 2020-03-27 13:55:50 · 369 阅读 · 0 评论 -
PHP-方法修饰符
1.5 方法修饰符方法修饰符有:static、final、abstract1.5.1 static【静态的】static修饰的属性叫静态属性、static修饰的方法叫静态方法静态成员加载类的时候分配空间,程序执行完毕后销毁静态成员在内存中就一份。调用语法 类名::属性 类名::方法名()<?phpclass Person { public static $...原创 2020-03-27 13:54:40 · 894 阅读 · 0 评论 -
PHP-私有属性继承和重写
1.3 面向对象三大特性封装继承多态1.4 私有属性继承和重写私有属性可以继承但不能重写。<?phpclass A { private $name='PHP'; public function showA() { //var_dump($this); //object(B)#1 (2) { ["name":"B":private]=> string(4) "...原创 2020-03-27 13:53:35 · 706 阅读 · 0 评论 -
PHP-面向对象(多态)
1.2 多态多态:多种形态。多态分为两种:方法重写和方法重载1.2.1 方法重写子类重写了父类的同名的方法<?php//父类class Person { public function show() { echo '这是父类<br>'; }}//子类class Student extends Person { //子类重写了父类的同名方法 pu...原创 2020-03-27 13:52:25 · 329 阅读 · 0 评论 -
PHP-面向对象(继承)
1.12 继承1.12.1 继承介绍继承使得代码具有层次结构子类继承了父类的属性和方法,实现了代码的可重用性。使用extends关键字实现继承父类和子类是相对的语法class 子类 extends 父类{}例题<?php//父类class Person { public function show() { echo '这是人类<br>'; ...原创 2020-03-27 12:40:41 · 471 阅读 · 0 评论 -
PHP-面向对象(析构方法)
1.11 析构方法1.11.1 介绍当对象销毁的时候自动调用语法function __destruct(){}脚下留心:析构函数不可以带参数例题<?phpclass Student { private $name; //构造方法 public function __construct($name) { $this->name=$name; echo ...原创 2020-03-27 12:39:43 · 288 阅读 · 0 评论 -
PHP-面向对象(封装与面向对象方法)
1.9 封装封装就是有选择性的提供数据通过访问修饰符来实现封装1.10 构造方法1.10.1 介绍构造方法也叫构造函数,当实例化对象的时候自动执行。语法:function __construct(){}注意:前面是两个下划线例题<?phpclass Student { public function __construct() { echo '这是构造方...原创 2020-03-27 12:38:39 · 345 阅读 · 0 评论 -
PHP-面向对象(类和对象在内存中的分布)
1.8 类和对象在内存中的分布对象的本质是一个复杂的变量类的本质是一个自定义的复杂数据类型栈区:运行速度快,体积小,保存基本类型堆区:运行速度稍慢,体积大,保存复杂类型实例化的过程就是分配内存空间的过程对象保存在堆区,将堆区的地址保存到栈区。分析如下代码的结构<?phpclass Student { public $name; public $sex; publi...原创 2020-03-27 12:37:06 · 430 阅读 · 0 评论 -
PHP-面向对象(访问修饰符)
1.7 访问修饰符用来控制成员的访问权限修饰符描述public(公有的)在类的内部和外部都能访问private(私有的)只能在类的内部访问protected(受保护的)在整个继承链上访问**多学一招:**一般来说,属性都用私有的,通过公有的方法对私有的属性进行赋值和取值。作用:保证数据的合法性<?php//访问修饰符class Stud...原创 2020-03-27 12:35:55 · 373 阅读 · 0 评论 -
PHP-面向对象(方法)
1.6 方法方法的本质就是函数<?phpclass Student { //定义方法 public function show() { echo '这是show方法<br>'; } //public可以省略,如果省略,默认就是public function test() { echo '这是test方法<br>'; }}$stu=new ...原创 2020-03-27 12:34:40 · 211 阅读 · 0 评论 -
PHP-面向对象(属性)
1.5 属性属性本质就是变量通过->调用对象的成员 对象名->属性名 对象名->方法名()<?php//定义类class Student { public $name; //属性 public $add='地址不详'; //属性}//实例化对象$stu=new Student();//print_r($stu); //Student Ob...原创 2020-03-27 12:33:27 · 311 阅读 · 0 评论