
PHP-面试
PHP-面试
echojson
雄鹰在鸡窝里长大,就会失去飞翔的本领,野狼在羊群里成长,也会爱上羊而丧失狼性。人生的奥妙就在于与人相处。生活的美好则在于送人玫瑰。和聪明的人在一起,你才会更加睿智。和优秀的人在一起,你才会出类拔萃。所以,你是谁并不重要,重要的是,你和谁在一起。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
电商系统架构全链路解析
1、电商系统可能是世界上最复杂的业务系统说个有意思的小事,和一位PM同行聊工作,问我电商做的如何,我说并不是一件易事。对方哈哈一笑,说电商不就那么回事吗,有啥难的,是个PM都能做,我嘿嘿一笑,不作辩解。光说中国电商,发展至今已有20多年的历史,且一直处于高速的发展和竞争当中,时至今日,都不可妄语尘埃落定,对于大型公司来说,电商仅为销售渠道之一,而在此基础上衍生出来的研、产、供、销、服整套的信息系统体系,才是支撑其运作的核心。当你从销售或是用户这个点来看电商,会觉得无比简单,而当你从整个体系的面来看电原创 2020-07-15 17:36:15 · 5822 阅读 · 0 评论 -
php 魔术方法
php 的一大特色应该就是以两个 __ 开头的魔术方法了。魔术方法有 这些,虽然很多魔术方法一般都没有什么机会碰到但是有时候研究源代码的时候碰到了会楞__construct__destruct__call__callStatic__get__set__isset__unset__toString__invoke__clone__awake__sleep__set_state__debugInfoconstruct毫无疑问调用频率最高的魔术方法。该方原创 2020-05-14 10:12:29 · 180 阅读 · 0 评论 -
理解:同步、异步、阻塞与非阻塞
四、同步、异步、阻塞与非阻塞4.1、引言近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写...原创 2020-05-08 10:32:10 · 234 阅读 · 0 评论 -
PHP 的 CGI、FastCGI、PHP-FPM
一、案例分析1.1、分析当 Web Server 收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是 PHP 的解析器。接下来 PHP 解析器会解析 php.ini 文件,初始化执行环境,然后处理请求,再以规定 CGI 规定的格式返回处理后的结果,退出进程,Web server 再把结果返回给浏览器。这就是一个完整的动态 PHP Web 访问流程,接下来再引...原创 2020-05-08 10:31:35 · 269 阅读 · 0 评论 -
PHP 底层分析
一、PHP 的编译特点注:脚本一运行结束,opcode 将会被清除;但是第三方工具:apc,xcache 等加速器可以保存 opcode二、PHP 变量的底层实现由 zend 虚拟机实现,zend 虚拟机是用 C 语言开发的疑问:PHP 中有8种数据类型,但为什么 zval->value 联合体中,只有5种?答:① NULL,直接 zval->type = ...原创 2020-05-08 10:20:54 · 203 阅读 · 0 评论 -
PHP高级——抽象类与接口
一、 抽象类abstract class抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类。抽象类不能被直接实例化。抽象类中只定义(或部分实现)子类需要的方法。子类可以通过继承抽象类并通过实现抽象类中的所有抽象方法,使抽象类具体化。如果子类需要实例化,前提是它实现了抽象类中的所有抽象方法。如果...原创 2018-04-28 10:16:42 · 190 阅读 · 0 评论 -
进程和线程
进程和线程有什么区别从概念上:进程:一个程序对一个数据集的动态执行过程,是分配资源的基本单位。线程:一个进程内的基本调度单位。线程的划分尺度小于进程,一个进程包含一个或者更多的线程。从执行过程中来看:进程:拥有独立的内存单元,而多个线程共享内存,从而提高了应用程序的运行效率。线程:每一个独立的线程,都有一个程序运行的入口、顺序执行序列、和程序的出口。但是线程不能够独立的执行,必须依存在应用程序中,...原创 2018-04-13 14:53:58 · 167 阅读 · 0 评论 -
设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
设计模式系列——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式) 被腾讯笔试打击到了,腾讯笔试的设计模式题目都没有做对过,所以我要学习下设计模式,就买了入门的《大话设计模式》这本书。我从昨天下午开始看这本书,今天中午看完,发现这本书浅显易懂,作为入门读物还是不错的。 好脑子不如烂笔头,我还是将所学的东西记载下来,供我以后来看吧。简单原创 2018-03-27 19:16:20 · 221 阅读 · 0 评论 -
php实现多进程、多线程
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。 僵尸进程危害:如原创 2018-04-13 15:33:00 · 675 阅读 · 0 评论 -
Countable接口
继承Countable接口的可被用于count() 函数。class CountMe{ protected $_myCount = 3; public function count() { return $this->_myCount; } } $countable = new CountMe(); echo count($countable);//返回...原创 2018-04-27 22:00:36 · 945 阅读 · 0 评论 -
PHP中Trait详解及其应用
从PHP的5.4.0版本开始,PHP提供了一种全新的代码复用的概念,那就是Trait。Trait其字面意思是”特性”、”特点”,我们可以理解为,使用Trait关键字,可以为PHP中的类添加新的特性。熟悉面向对象的都知道,软件开发中常用的代码复用有继承和多态两种方式。在PHP中,只能实现单继承。而Trait则避免了这点。下面通过简单的额例子来进行对比说明。1. 继承 VS 多态 VS T...原创 2018-05-05 17:46:47 · 1592 阅读 · 0 评论 -
php解决约瑟夫问题
“约瑟夫环”是一个数学的应用问题:一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去…,如此不停的进行下去, 直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。下面列出了三种用PHP来解决此问题的方法:按逻辑依次去除递归算法线性表应原创 2018-03-27 19:10:54 · 282 阅读 · 1 评论 -
php 中的sprintf 坑
先说下为什么要写这个函数的前言,这个是我在看工作中发现一处四舍五入的bug后,当时非常不理解,echo sprintf('%.2f',123.455); //123.45echo sprintf('%.2f',12.455);//12.46语法: int sprintf(string format, mixed [args]…);类型参照表,也就是要转换成什么类型的格式%d 十进制有符号整数...原创 2018-03-27 16:08:39 · 1754 阅读 · 0 评论 -
php面试题汇总四(基础篇附答案)
1. 什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。 2. SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明?1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。2、SESSION存储在服务器端,COOKIE保存在客户端。Ses...原创 2018-03-25 15:17:10 · 314 阅读 · 0 评论 -
php面试题汇总三(基础篇附答案)
问题1. 如何访问会话变量(session)?A.通过$_GETB.通过$_POSTC.通过$_REQUESTD.通过全局变量E.以上都不对2. 哪个函数能让服务器输出如下 header?set-Cookie: foo=bar;答案:_______________3. 在忽略浏览器 bug 的正常情况下,如何用一个与先前设置的域名(domain)不同的新域名来访问某个 cookie?A.通过 HT...原创 2018-03-25 15:16:34 · 413 阅读 · 0 评论 -
php面试题汇总一(基础篇附答案)
一份不错的php面试题,附答案,有准备换工作的同学可以参考一下.1:使用五种以上方式获取一个文件的扩展名要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)解析:function get_ext1($file_...原创 2018-03-25 15:16:09 · 1223 阅读 · 0 评论 -
redis实现高并发下的抢购/秒杀功能
之前写过一篇文章,高并发的解决思路(点此进入查看),今天再次抽空整理下实际场景中的具体代码逻辑实现吧:抢购/秒杀是如今很常见的一个应用场景,那么高并发竞争下如何解决超抢(或超卖库存不足为负数的问题)呢?常规写法:查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数这里我就只谈redis的解决方案吧...我们先来看以下代...原创 2018-03-25 14:42:22 · 1901 阅读 · 0 评论 -
关于php 高并发解决的一点思路
涉及抢购、秒杀、抽奖、抢票等活动时,为了避免超卖,那么库存数量是有限的,但是如果同时下单人数超过了库存数量,就会导致商品超卖问题。那么我们怎么来解决这个问题呢,我的思路如下(伪代码): sql1:查询商品库存if(库存数量 > 0){ //生成订单... sql2:同时库存-1}当没有并发时,上面的流程看起来是再正常不过了,假设同时两个人下单,而库存只有1个原创 2018-03-25 14:36:41 · 1093 阅读 · 0 评论