PHP
文章平均质量分 64
WencoChen
这个作者很懒,什么都没留下…
展开
-
PHP中this、self、parent的详解
       在平时写代码的时候经常会用到this、parent、self,但是你清楚他们是什么意思吗?还是说平时的使用只是“人云亦云”呢?作为一名优秀的程序,应当具备刨根问底的精神,了解这三者之间的区别,也是由面向过程走向面向对象必须具备的!this1 &转载 2018-09-24 16:49:17 · 307 阅读 · 0 评论 -
使用Redis保存PHP Session
文章目录1 环境2 配置PHP2.1 修改php.ini2.2 修改php-fpm.conf2.3 PHP代码3 测试PHP默认就支持保存session到redis,不需任何额外代码。Redis保存session用的命令是setex,用redis-cli monitor实时监测可以检测到。setex命令的语法:setex(key, time, value)其中,key是键值,time是...转载 2019-02-27 18:04:36 · 439 阅读 · 0 评论 -
三分钟学会composer
当系统有不同的web应用,但是需要共用很多代码怎么办当系统需要一个扩展功能而这个扩展功能网上刚好有人提供了怎么用PHP代码如何升级,降级,回滚如何分配任务,如何让多个工程师一起进行开发任务我在2011年接触PHP,那时候刚发布V5.3.5。从语言层面,我不认为PHP有过于明显的缺陷,我们在有丰富面向web的函数库的基础上,还有了类、SPL、匿名函数、etc。这些特性(一点都不“特”好吧)足...转载 2019-02-13 11:48:24 · 432 阅读 · 0 评论 -
关于命名空间
1. PHP中的命名空间是什么?官方解释在此: 命名空间概述命名空间用一句话说,就是:把 类、函数、变量 等放到逻辑子文件夹中去,以避免命名冲突。注:命名空间跟实际代码文件在文件系统中的路径没有任何关系,如果你感到迷茫,可以看看本文最后一节。2. 被隐藏的第一个 \在每个 PHP 文件的最开始定义命名空间:<?php namespace TinyLara\TinyRoute;...转载 2019-02-13 14:14:29 · 316 阅读 · 0 评论 -
php中pecl、pear和composer三者的区别
1.PECLPHP Extension Community Library(PHP社区扩展库)管理底层的php扩展,用c或者c++编写外部模块然后加载至php中,如redis,xdebug等模块。2.PEARPHP Extension and Application Repository(PHP扩展及应用仓库)管理项目环境扩展,如一段php写的类或函数。3.composerPHP 的...原创 2019-02-13 16:05:18 · 758 阅读 · 0 评论 -
php获取客户端ip地址
在平时的复制粘贴中,我们经常会有获取客户端ip地址的需求,然而,客户们也不总都是老实人,如何才能获取到那些不老实的IP呢,下面整理了各种情况下获取客户端IP的方法:客户端REMOTE_ADDRHTTP_X_FORWARDED_FOR说明没有使用代理服务器代理服务器 IP没数值或不显示使用透明代理服务器最后一个代理服务器 IP客户端真实 IP (经过多个代理...原创 2019-02-19 11:03:21 · 232 阅读 · 0 评论 -
cgi、fastcgi、php-fpm、php-cgi
文章目录1. 什么是cgi生命周期2. 什么是fastcgi生命周期3. 什么是php-fpmphp-fpm的平滑重启4. php-fpm与php-cgi1. 什么是cgicgi:common gateway interface(通用网关接口)CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者。并不是php独有的web server(比如说nginx)...原创 2019-02-25 19:28:16 · 333 阅读 · 0 评论 -
利用composer给自己的类库加上自动加载功能
最近在搞api架构设计,要与之前的代码隔离开来,之前的代码种种原因没有不是用的类似的自动加载,用了composer发现真的做的非常方便,自动加载功能及其好用,所以在想能不能直接利用composer的自动加载来为自己写的类库提供自动加载功能!百度谷歌StackOverflow,该有的答案总是会有的!假设你已经会composer的基本使用。方法:在composer.json中添加类似代码: ...原创 2019-04-11 15:42:17 · 2002 阅读 · 0 评论 -
PHP消息队列
1.队列的概念:是队列结构的中间件消息放入后不需要立即处理由订阅者/消费者按顺序处理2.队列原理:也是解耦的原理:业务系统和队列处理系统没有关系一个写(业务系统),一个读(队列管理系统)。写的只管往队列里写,别的不用操心,读的能不能读完和写的也没有关系同样,读的只管从队列里往外读,来活儿就干,没活儿歇着3.应用场景:冗余:持久化的存储在队列中,后续由订单处理程...转载 2019-04-12 18:27:42 · 455 阅读 · 0 评论 -
PHP标准库 (SPL)——Countable
类实现 Countable 可被用于 count() 函数.接口摘要Countable {/* 方法 */abstract public count ( void ) : int}当一个类实现了Countable接口,实现了接口中的count方法,即可直接使用count(Object)的到count方法返回的值。例:class MyCount { private $num...原创 2019-07-24 18:55:49 · 304 阅读 · 0 评论 -
PHP中abstract(抽象)、final(最终)和static(静态)详解
abstract(抽象)PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护...原创 2019-02-14 19:15:14 · 1405 阅读 · 1 评论 -
PHP函数require、require_once以及include、include_once的区别
在程序中引入文件时经常会用到require,include这些函数,但是他们有什么区别以及各自的应用场景是什么呢?国际惯例,先看手册:原创 2019-01-14 11:18:21 · 408 阅读 · 0 评论 -
php设计模式之单例模式
单例模式,正如其名,允许我们创建一个而且只能创建一个对象的类。这在整个系统的协同工作中非常有用,特别明确了只需一个类对象的时候。那么,为什么要实现这么奇怪的类,只实例化一次?在很多场景下会用到,如:配置类、Session类、Database类、Cache类、File类等等。这些只需要实例化一次,就可以在应用全局中使用。本文我们以数据库类为例。1 问题如果没有使用单例模式,会有什么样的...转载 2018-12-15 12:53:04 · 197 阅读 · 0 评论 -
实例化php类的时候如何传参
当我们实例化一个php类的时候,要怎么传递参数呢?这取决于该类的构造方法。例:person.class.php<?php class person{ var $name; var $color; var $sex; var $age; function __construct($name,$age='',$s...转载 2018-09-26 15:21:43 · 2975 阅读 · 0 评论 -
PHP的几个修饰词
&nbsp; &nbsp; &nbsp; &nbsp;相信大家对PHP函数的几个修饰词应该不会陌生,public、private、protected、static经常出现在项目代码中,但你真的了解他们吗?public:&nbsp; &nbsp; &nbsp; &nbsp;公有成员函数,可被任何其它对象和类的成员函数调用。 当该成员函数必须被该函数所在的层次结构之外的其他对象和原创 2018-09-26 17:01:45 · 564 阅读 · 0 评论 -
$GLOGALS与global关键字的区别
目录global$GLOBALS:global $var : 指函数外部同名变量的引用$GLOBALS[‘var’] : 指函数外部变量本身global$a = 100;function one(){ global $a; unset($a);}one();echo $a;// 输出 100$GLOBALS:$a = 100;...原创 2018-09-26 18:06:01 · 208 阅读 · 0 评论 -
PHP类的自动加载与命名空间
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;作为一名合格的程序员,必定会有一个从面向过程编程到面向对象编程的转化过程,在这个过程中诸如命名空间,类,继承,接口,类自动加载等等都是需要我们去掌握的,之前对这些概念都不是很熟悉,只是能够基础地使用,在这里系统的记录一下关于命名空间与类的自动加载知识。类的自动加载什么是自动加载类?&amp;amp;nb原创 2018-11-09 16:46:52 · 704 阅读 · 0 评论 -
php递归函数及简单实例讲解
递归函数即自调用函数,在函数体内部直接或者间接的自己调用自己,即函数的嵌套调用是函数本身。通常在此类型的函数提之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定的条件下终止函数的递归调用动作,把目前流程的主控权交回到上一层函数来执行。以此,当某个执行递归调用的函数没有附加条件判断叙述时,可能会造成无限循环的错误情形。函数递归调用最大的好处在于可以精简程序中的复杂重复调用程序...转载 2018-11-05 18:25:09 · 729 阅读 · 0 评论 -
PHP中isset()、is_null()、empty()的比较
在项目中经常会看到在判断中用is_set(),is_null(),empty()作为判断校验条件的,但是你知道在什么情况下用哪一种最合适吗?今天来做一下归纳总结!首先不管三七二十一,翻一翻官方手册才是王道 ‘u’ 。issetbool isset ( mixed $var [, mixed $... ] )检测变量是否已设置并且非 NULL如果已经使用 unset() 释放了一个变...原创 2018-11-12 11:23:29 · 284 阅读 · 0 评论 -
使用PHP的json_decde遇到的坑
(1)今天在一个页面上添加一个ajax查询订单号是否存在的功能,操蛋的是在原页面上引用了一个js文件,并且该文件里面封装了一个原生的ajax方法,影响就是我是用jquery的ajax方法会被该方法拦截,然后返回失败结果,由于本人并非专业前端,所以并没有去刨根问底,只好按照框架封装的方法去发ajax请求了。(2)使用框架封装的方法后确实是可以用了,但是操蛋的是有一个操蛋的结果出来了,该aja...原创 2018-11-26 10:22:25 · 650 阅读 · 2 评论 -
PHP页面静态化——纯静态与伪静态
为什么要静态化页面? 当用户访问一个不经常更新的Web页面,PHP接到指示对php脚本文件进行解析,从数据库查询到该页面所需要的数据,然后对页面模板进行渲染,最后将一个成品页面展示给用户。单次请求对于服务器来说非常简单,处理起来非常快,但是如果同时有成千上万各用户请求该页面呢?这无疑是对资源的一种浪费,这就是我们要做静态的目的。 ...原创 2018-12-19 22:40:07 · 744 阅读 · 0 评论 -
PHP预定义接口——Iterator
Iterator(迭代器)接口可在内部迭代自己的外部迭代器或类的接口。接口摘要Iterator extends Traversable { /* 方法 */ abstract public current ( void ) : mixed abstract public key ( void ) : scalar abstract public next ( void ) : v...原创 2019-07-24 19:21:06 · 303 阅读 · 0 评论