![](https://img-blog.csdnimg.cn/20210219131947804.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
php面试题
文章平均质量分 70
PHP面试题
叫我峰兄
星光不问赶路人,干就完了!
展开
-
使用laravel解决库存超出的几个方案
数据库字段1. 错误的示范 /** * 错误示范 * Create by Peter Yang * 2021-06-08 10:57:59 * @return string */ function test1() { //商品id $id = request()->input('id'); $product = Product::where('id', $id)->f原创 2021-07-30 15:47:28 · 507 阅读 · 1 评论 -
PHP常见问题
1. PHP7为什么比PHP5快?存储变量的结构体变小,结构体成员共用内存空间,减少引用,内存占用率降低,变量的操作速度得以提升。字符串结构体的改变,字符串信息和数据本身原来是分成两个独立内存块存放,PHP7尽量将他们存入同一个内存块,提升了CPU的缓存命中率。数组结构的改变,数组元素和hash映射表在PHP5中会存入多个内存块,PHP7尽量将他们分配在同一个内存块,降低内存占用,提升cpu的缓存命中率。改进了函数的调用机制,通过对参数传递环节的优化,减少一些指令,提升执行效率。...原创 2021-04-12 19:15:48 · 63 阅读 · 0 评论 -
依赖注入与Ioc容器
文章内容背景在很多编程语言(例如java)开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,一旦有修改,牵扯的类会很多。最早在java的spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。目前许多主流PHP框架也使用了依赖注入容器,如ThinkPHP、Laravel等。一、概念1、容器:字面上理解就是装东西的东西。常见的变量、原创 2021-03-05 18:54:08 · 242 阅读 · 0 评论 -
PHP基础和中等面试题
1 以下代码会输出啥<?php class a{ var $abc="ABC"; } $b=new a; $c=$b; $b->abc="DEF"; echo $c->abc;?>会输出啥内容?A. ABCB. DEFC.其它D. 我不知道答案:B解析:考察对象复制问题。对象的复制都是引用复制2.输出多少?$a=2;$b=1;function test(&$a){ $a=$a+原创 2021-03-05 15:35:46 · 514 阅读 · 0 评论 -
某互联网大厂1一面整理
1、熟悉的PHP框架有哪些?简单介绍下PHP框架中类的自动加载是怎么实现的laravel、thinkphp、ci、yiiPHP类自动加载实现步骤:1.新建一个类文件:Autoload.php2.在文件中定义一个类,类名与文件名同名class Autoload{ public function display($name='小红花') { return "送一一朵".$name; }}3.新建一个文件,定义一个类,类中自定义一个静态的方法::loadclass Demo{原创 2021-03-05 14:44:40 · 163 阅读 · 1 评论 -
PHP面试题
二.面向对象2.1 你理解的面向对象?一切皆对象。是计算机模拟现实世界的一种方式,面向对象的三大特征:封装、继承、多态。通过对成员属性和成员方法进行操作,来使对象具有行为属性和行为方法。2.2 在PHP中有几种类不能通过 new 出来,请问他们是什么,并且有什么区别有静态方法的类不能new,不需要创建实例,常驻内容三.框架技能3.1 用最简单通俗易懂的方式表达你对AOP和IOC,DI的理解AOP面向切面编程,对源代码无入侵,将业务无关的代码可以代码外面去做,比如方法入口的日志打印IOC控制反原创 2021-02-24 18:16:45 · 373 阅读 · 0 评论 -
库存超发问题
1. 库存超发的原因是什么?在执行商品购买操作时,有一个基本流程:例如初始库存有3个。第一个购买请求来了,想买2个,从数据库中读取到库存有3个,数量够,可以买,减库存后,更新库存为1个。接下来第二个购买请求来了,想买2个,发现库存为1,不够,不可以买了。这样是没问题的,但在高并发情况下,这2个购买请求很可能是一起来的,他们都读到库存是3,都可以买,就都去减库存,这时超发就发生了,结果库存变成 -1了。有多种方案来解决这个问题,我们主要看3种方案:悲观锁乐观锁Redis + Lua下原创 2021-02-19 13:12:00 · 463 阅读 · 0 评论 -
七. 算法面试题
现有下图的树形结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dGueTsDx-1610507030727)(http://on64ewxzt.bkt.clouddn.com/blog/20180503/092039988.png)]该结构存储在数据库Tree表中,Tree表结构如右图所示,其中Id为节点编码,ParentId为父节点编号。请实现统计给定节点的子节点的数量。例如2的子节点(即节点4,5,6,7)的数量为4,3的子节点数量为0$arr = [ [.原创 2021-01-13 11:04:05 · 73 阅读 · 0 评论 -
第六章 MVC框架基础
一. MVC工作原理Model View ControllerModel:数据模型层,数据相关的操作View:视图层,跟用户进行界面交互Controller:控制器层,处理业务逻辑[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ccy2nObc-1610506954470)(http://on64ewxzt.bkt.clouddn.com/blog/20180422/103832213.png)]二.MVC框架框架是程序结构代码的集合,而不是业务逻辑代码。集合中包原创 2021-01-13 11:02:54 · 145 阅读 · 0 评论 -
第五章 程序功能设计
编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库,要求设计数据表内容及使用PHP编码完成一. 数据表设计分析数据表结构留言板有哪些信息需要存储留言信息:ID,留言标题,留言内容,留言时间,留言人##二. 数据表创建语句create table message(`id` int UNSIGNED not null auto_increment PRIMARY KEY,`title` VARCHAR(120) not null DEFAULT '',`content` VA原创 2021-01-13 11:01:50 · 371 阅读 · 0 评论 -
第四章 MySQL
一. MySQL数据类型整数TINYINT SMALLINT MEDIUMINT INT BIGINT属性 UNSIGINED长度:可以为整数类型指定宽度,例如,INT(11),对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示实数类型FLOAT DOUBLE DECIMALDECIMAL可存储比BIGINT还大的整数,可以用于存储精确的小数FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算字符串类型VARCHAR CHAR TEXT BLOBVARCH原创 2021-01-13 11:00:50 · 122 阅读 · 0 评论 -
第三章 linux
一. linux基础系统安全sudo su chmod setfacl进程管理w top ps kill pkill pstree killall用户管理id usermod useradd groupadd userdel文件系统mount umount fsck df du系统关机和重启shutdown reboot网络应用curl telnet mail elinks网络测试ping netstat host网络配置hostname ifconfig常用工具ssh原创 2021-01-13 10:59:04 · 79 阅读 · 0 评论 -
第二章 js相关
一. js基本语法变量的定义(1)必须以字母开头,也可以以$和_符号开头,大小写敏感(2)使用var关键字来声明变量(3)可以在一条语句中声明很多变量(4)未使用值来声明的变量,值是undefined(5)如果重新声明js变量,变量的值不会丢失var a = 1; var a;//a还是1数据类型字符串、数字、布尔、数组、对象、Null、Undefinedjs变量均为对象。当您声明一个变量时,就创建了一个新的对象。创建对象(1) new Object()(2) 使用对象原创 2021-01-13 10:57:14 · 68 阅读 · 0 评论 -
第一章 PHP基础知识考察点
一. 引用变量PHP引用变量的概念及定义方式概念在PHP中引用意味着用不同的名字访问同一个变量内容。定义方式使用&符号unset只会取消引用,不会销毁空间$a = 1;$b = &$a; unset($b);echo $a;对象本身就是引用传值$data = ['a','b','c'];foreach($data as $key=>$val){ $val = &$data[$key];}程序运行时,每一次循环结束后变量$da原创 2021-03-08 13:44:16 · 241 阅读 · 0 评论 -
第八章 高并发大流量
一.高并发架构相关概念并发并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任意时刻点只能有一个程序 在处理机上运行。我们说的高并发是什么?在互联网时代,高并发指的是并发访问。也就是在某个时间点,有多少个访问同时到来。通常一个系统的日PV在千万以上,就可能是一个高并发系统高并发问题,我们具体该关心什么?QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求)吞吐量:单位时间内处理的请求数量(通常原创 2021-01-12 21:18:06 · 579 阅读 · 0 评论 -
八. 大流量高并发知识点
1.如果你的数据接口被恶意刷取数据,你有哪些有效的手段进行技术反制?1 / 验证码(最简单有效的防护),采用点触验证,滑动验证或第三方验证码服务,普通验证码很容易被破解2 / 频率,限制同设备,同IP等发送次数,单点时间范围可请求时长3 / 归属地,检测IP所在地是否与手机号归属地匹配;IP所在地是否是为常在地4 / 可疑用户,对于可疑用户要求其主动发短信(或其他主动行为)来验证身份5 / 黑名单,对于黑名单用户,限制其操作,API接口直接返回su原创 2021-01-12 21:16:48 · 93 阅读 · 0 评论 -
第七章 算法
一. 算法的基本概念一个问题可以有多个算法,每种算法效率不同一个算法具有五个特征:有穷性,确切性、输入项、输出项、可行性算法评定算法分析的目的在于选择合适算法和改进算法一个算法的评价主要从时间复杂度和空间复杂度来考虑时间复杂度执行算法所需要时间的计算工作量。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度时间复杂度计算方式得出算法的计算次数原创 2021-01-12 21:16:04 · 124 阅读 · 1 评论 -
六. 框架相关知识点
1.ThinkPHP中M和D的使用方法并说出区别。相同点 都是实例化模型不同点:M方法实例化模型,无需数据表定义模型类,而D方法实例化模型需要模型类,如果模型类不存在,会自动调用M方法。通俗点讲,D就是实例化一个基于Model文件的model.M则是通过直接实例化Model对象,即使对应的Model文件不存在2.使用ThinkPHP写一个连贯查询,包含条件、排序、分页,字段并说明find和select的区别$m->where(‘a=1’)->order(‘id asc’)->fi原创 2021-01-12 21:15:15 · 74 阅读 · 0 评论 -
五. 程序功能设计面试题
1.现有如下接口Interface Ilogger{Public function __construct($filename);Public function write($log);Public function read();}现需要日志读写的Logger类,通过构造函数指定了日志文件的路径,通过调用wrtie和read方法完成日志文件的读写。1)请使用ILogger接口实现Logger类Interface Ilogger{ Public function __constru原创 2021-01-12 21:14:31 · 335 阅读 · 0 评论 -
四. 数据库相关知识点
1.设有一个数据库mydb中有一个表tb1,表中有六个字段,主键为ID,有是条记录,ID从0到9,以下代码输出结果是?(D)<?php$link = mysql_connect("localhost","mysql_user","mysql_password") or die("Could not connect:"mysql_errno());$result = mysql_query("SELECT id,name,age FROM mydb.tb1 WHERE id <'5'");原创 2021-01-12 21:12:10 · 2027 阅读 · 1 评论 -
三.linux相关知识点
1 Linux下某文件夹的属性为-rw-r-r- 用数字表示其权限是644,用指令改变其属性为-rwxr-xr-xChmod -R 7552 请解释下列 10 个 shell 命令的用途(新浪网技术部)top、ps、mv、find、df、cat、chmod、chgrp、grep、wctop:该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用情况。该命令可以按照对CPU、内存使用和执行时间对系统任务进程进行排序显示,同时还可以通过交互式命令进行设定显示。ps:显示系统进程原创 2021-01-12 21:11:24 · 83 阅读 · 0 评论 -
二. js相关面试题
1.JS表单弹出对话框函数是?获取输入焦点函数是?alert()focus()2.JS的转向函数是?怎么引入一个外部JS文件?location.href<script src=’xxx’></script>3.行内元素有哪些?块级元素有哪些?行内元素:a、b、span、img、input、strong、select、label、em、button、textarea块状元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote4.margin和p原创 2021-01-12 21:10:39 · 458 阅读 · 1 评论 -
一.PHP基础知识相关面试题
一.文件操作1.下面哪个函数可以打开一个文件,以对文件进行读和写操作(1分)A.fget() B.file_open() C.fopen() D.open_file()C写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名方法一:function get_ext($url){ $data = parse_url($url); return pathinfo($data['path'], PATHINFO_EXTENSION); } 3.有一个网页原创 2021-01-12 21:09:14 · 2025 阅读 · 0 评论