这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看法回答的,不妥的地方请大家指出去,与大家一起讨论分析,也希望能帮到正在面试的童鞋们:

1.表单提交中的Get和Post的异同点

get 请求一般用于向服务端获取数据,post 一般向服务端提交数据

get 传输的参数在 url 中,传递参数大小有限制,post 没有大小限制,

get 不安全,post 安全性比get高

get请求在服务端用Request.queryString 接受 ,post 请求在服务端用Requset.form 接受

2.HTML的base标签是干什么用的

必须写在head 中, base 标签为页面上的所有链接规定默认地址或默认目标

3.echo(),print(),print_r()的区别?

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print() 只能打印出简单类型变量的值(如int,string)

print_r() 可以打印出复杂类型变量的值(如数组,对象)

echo 输出一个或者多个字符串

4.写一个email的正则表达式

  1. /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

5.数组[‘a’, ‘b’, ‘c’] 转换成字符串 ‘abc’

  1. echo implode(‘’,[‘a’, b’, c’]);
  2. echo join([‘a’, b’, c’],'');

6.获取字符串’aAbB’中A首次出现的位置

  1. $str=‘aAbB’;
  2. echo strpos($str,"A");

7. 编写一段用最小代价实现将字符串完全反序, e.g. 将 “1234567890” 转换成 “0987654321”. (用前述你最熟悉的语言编写并标注简单注释, 不要使用函数,

  1. $s = '1234567890';
  2. $o = '';
  3. $i = 0;
  4. while(isset($s[$i]) && $s[$i] != null) {
  5. $o = $s[$i++].$o;
  6. }
  7. echo $o;

8.请用递归实现一个阶乘求值算法 F(n): n=5;F(n)=5!=5*4*3*2*1=120

  1. function F($n){
  2. if($n==0){
  3. return 1;
  4. }else{
  5. return $n* F($n-1);
  6. }
  7. }var_dump(F(5));

9.将字符长fang-zhi-gang 转化为驼峰法的形式:FangZhiGang

  1. //方法一
  2. function Fun($str){
  3. if(isset($str) && !empty($str)){
  4. $newStr='';
  5. if(strpos($str,'-')>0){
  6. $strArray=explode('-',$str);
  7. $len=count($strArray);
  8. for ($i=0;$i<$len;$i++){
  9. $newStr.=ucfirst($strArray[$i]);
  10. }
  11. }
  12. return $newStr; }
  13. }
  14. //方法二function Fun($str){
  15. $arr1=explode('_',$str);
  16. $str = implode(' ',$arr1);
  17. return ucwords($str);
  18. }
  19. var_dump(Fun("fang-zhi-gang")); //FangZhiGang

10.数组内置的排序方法有哪些?

  1. sort($array); //数组升序排序
  2. rsort($array); //数组降序排序
  3. asort($array); //根据值,以升序对关联数组进行排序
  4. ksort($array); //根据建,以升序对关联数组进行排序
  5. arsort($array); //根据值,以降序对关联数组进行排序
  6. krsort($array); // 根据键,以降序对关联数组进行排序

11.用PHP写出显示客户端IP与服务器IP的代码

  1. $_SERVER["REMOTE_ADDR"]
  2. $_SERVER["SERVER_ADDR"]

12.语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

  1. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require
  2. include有返回值,而require没有(可能因为如此require的速度比include快)
  3. 包含文件不存在或者语法错误的时候require是致命的错误终止执行,include不是

13.session与cookie的区别?

  1. session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
  2. cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WINTemp目录中的。
  3. 两者都可通过时间来设置时间长短

14.PHP 不使用第三个变量实现交换两个变量的值

  1. //方法一
  2. $a.=$b;
  3. $b=str_replace($b,"",$a);
  4. $a=str_replace($b,"",$a);
  5. //方法二
  6. list($b,$a)=array($a,$b);
  7. var_dump($a,$b);

15.写一个方法获取文件的扩展名

  1. function get_extension($file){
  2. //方法一
  3. return substr(strrchr($file,'.'), 1);
  4. //方法二
  5. return end(explode('.', $file));
  6. }echo get_extension('fangzhigang.png'); //png

16.用PHP打印出前一天的时间格式是2017-3-22 22:21:21

  1. $a= date("Y-m-d H:i:s", strtotime("-1 days"));

17.sql语句应该考虑哪些安全性

  1. 1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译sql语句绑定
  2. 2)使用最小权限原则,特别是不要使用root账户,微不同的动作或者操作建立不同的账户
  3. 3)当sql出错时,不要把数据库出错的信息暴露到客户端

18.优化mysql 数据库方法

  1. 1)选取适当的字段,打字段设置为NOT NULL,在查询的时候数据库不用比较NULL
  2. 2)使用链接(join)代替子查询;
  3. 3)使用联合(UNION)查询代替手动创建临时表;
  4. 4)尽量减少使用(LIKE)关键字和通配符
  5. 5)使用事务和外健

19.对于大流量的网站,你会采用什么方法来解决访问量?

  1. 1)首先确认服务器硬件是否满足支持当前的流量;
  2. 2)优化数据库的访问;
  3. 3)禁止外部盗链;
  4. 4)控制大文件下载;
  5. 5)使用不同的主机分流;
  6. 6)使用流量分析统计;

20.mysql_fetch_row() 和mysql_fetch_array之间有什么区别?

  1. 这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,
  2. MySQL_fetch_array()返回的数组既包含第一种,也包含键值对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):$row['username']$row['passwd']

21.MySQL的几个概念:主键,外键,索引,唯一索引

  1. 主键(primary key) 能够唯一标识表中某一行的属性或属性组。一个表只能有一个主键,但可以有多个候选索引。主键常常与外键构成参照完整性约束,防止出现数据不一致。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。
  2. 外键(foreign key 是用于建立和加强两个表数据之间的链接的一列或多列。外键约束主要用来维护两个表之间数据的一致性。简言之,表的外键就是另一表的主键,外键将两表联系起来。一般情况下,要删除一张表中的主键必须首先要确保其它表中的没有相同外键(即该表中的主键没有一个外键和它相关联)。
  3. 索引(index) 是用来快速地寻找那些具有特定值的记录。主要是为了检索的方便,是为了加快访问速度, 按一定的规则创建的,一般起到排序作用。所谓唯一性索引,这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。
  4. 总结:
  5. 主键一定是唯一性索引,唯一性索引并不一定就是主键。
  6. 一个表中可以有多个唯一性索引,但只能有一个主键。
  7. 主键列不允许空值,而唯一性索引列允许空值。
  8. 主键可以被其他字段作外键引用,而索引不能作为外键引用。

22.mysql数据库引擎有哪些?

  1. MyISAM ISAMHEAPInnoDBBDBCVS...

23.谈谈你对 mysql 引擎中的MyISAM与InnoDB的区别理解?

  1. InnoDBMyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
  2. 以下是一些细节和具体实现的差别:
  3. MyISAMInnoDB的区别是什么?
  4. 1 存储结构
  5. MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。
  6. InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB
  7. 2 存储空间
  8. MyISAM:可被压缩,存储空间较小。支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。
  9. InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
  10. 3 可移植性、备份及恢复
  11. MyISAM:数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作。
  12. InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就相对痛苦了。
  13. 4 事务支持
  14. MyISAM:强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
  15. InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
  16. 5 AUTO_INCREMENT
  17. MyISAM:可以和其他字段一起建立联合索引。引擎的自动增长列必须是索引,如果是组合索引,自动增长可以不是第一列,他可以根据前面几列进行排序后递增。
  18. InnoDBInnoDB中必须包含只有该字段的索引。引擎的自动增长列必须是索引,如果是组合索引也必须是组合索引的第一列。
  19. 6 表锁差异
  20. MyISAM:只支持表级锁,用户在操作myisam表时,selectupdatedeleteinsert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。
  21. InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的。
  22. 7 全文索引
  23. MyISAM:支持 FULLTEXT类型的全文索引
  24. InnoDB:不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。
  25. 8 表主键
  26. MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。
  27. InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),数据是主索引的一部分,附加索引保存的是主索引的值。
  28. 9 表的具体行数
  29. MyISAM:保存有表的总行数,如果select count(*) from table;会直接取出出该值。
  30. InnoDB:没有保存表的总行数,如果使用select count(*) from table;就会遍历整个表,消耗相当大,但是在加了wehre条件后,myisaminnodb处理的方式都一样。
  31. 10 CURD操作
  32. MyISAM:如果执行大量的SELECTMyISAM是更好的选择。
  33. InnoDB:如果你的数据执行大量的INSERTUPDATE,出于性能方面的考虑,应该使用InnoDB表。DELETE 从性能上InnoDB更优,但DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。
  34. 11 外键
  35. MyISAM:不支持
  36. InnoDB:支持
  37. 通过上述的分析,基本上可以考虑使用InnoDB来替代MyISAM引擎了,原因是InnoDB自身很多良好的特点,比如事务支持、存储 过程、视图、行级锁定等等,在并发很多的情况下,相信InnoDB的表现肯定要比MyISAM强很多。另外,任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。如果不是很复杂的Web应用,非关键应用,还是可以继续考虑MyISAM的,这个具体情况可以自己斟酌。

24. redis 和 memache 缓存的区别

  1. 总结一:
  2. 1.数据类型
  3. Redis数据类型丰富,支持set list等类型
  4. memcache支持简单数据类型,需要客户端自己处理复杂对象
  5. 2.持久性
  6. redis支持数据落地持久化存储
  7. memcache不支持数据持久存储
  8. 3.分布式存储
  9. redis支持master-slave复制模式
  10. memcache可以使用一致性hash做分布式
  11. value大小不同
  12. memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用
  13. 4.数据一致性不同
  14. redis使用的是单线程模型,保证了数据按顺序提交。
  15. memcache需要使用cas保证数据一致性。CASCheck and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作
  16. 5.cpu利用
  17. redis单线程模型只能使用一个cpu,可以开启多个redis进程
  18. 总结二:
  19. 1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
  20. 2.Redis不仅仅支持简单的k/v类型的数据,同时还提供listsethash等数据结构的存储。
  21. 3.Redis支持数据的备份,即master-slave模式的数据备份。
  22. 4.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  23. 我个人认为最本质的不同是Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存
  24. 总结三:
  25. redismemecache的不同在于:
  26. 1、存储方式:
  27. memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
  28. redis有部份存在硬盘上,这样能保证数据的持久性。
  29. 2、数据支持类型:
  30. redis在数据支持上要比memecache多的多。
  31. 3、使用底层模型不同:
  32. 新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
  33. 4、运行环境不同:
  34. redis目前官方只支持Linux 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上
  35. memcache只能当做缓存,cache
  36. redis的内容是可以落地的,就是说跟MongoDB有些类似,然后redis也可以作为缓存,并且可以设置master-slave

25.表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

  1. drop table table1 create table table1(
  2. a int,
  3. b int,
  4. c int ) insert into table1 values(22,24,23)
  5. select * from table1
  6. select (case when a>b then a else b end),(case when b>c then b else c end) from table1
  7. select (case when a>b then a
  8. when a>c then a
  9. when b>c then b else c
  10. end) from table1

26.安装Linux系统中,用netconfig程序对网络进行配置,要输入哪些内容?

  1. 会让用户输入主机名、域名、域名服务器、IP地址、网关地址和子网掩码等必要信息

27. PHP 如何写接口给人家调用?

  1. public function authenticationApi($data,$url){
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt($ch, CURLOPT_HEADER, 0);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  8. //输出格式可以转为数组形式的json格式
  9. $tmpInfo = curl_exec($ch);
  10. curl_close($ch);
  11. return $tmpInfo;
  12. }

28.用PHP header()函数实现页面404错误提示功能

  1. Header("HTTP/1.1 404 Not Found");

29.heredoc结构及用法

  1. echo <<<EOT
  2. <html>
  3. <head><title>主页</title></head>
  4. <body>主页内容</body>
  5. </html>
  6. EOT;
  7. 注意:结束标识符所在的行不能包含任何其它字符除";"

30.nowdoc结构及用法

  1. $str = <<<'EOD'
  2. Example of string
  3. spanning multiple lines
  4. using nowdoc syntax.
  5. EOD;

31.javascript 判断弹出窗口是否被屏蔽程序代码

  1. var wroxWin = window.open("http://www.111cn.net", "_blank");if (wroxWin == null) {
  2. alert("糟糕!弹出窗口被屏蔽了");}

32. php序列化和反序列化用的函数

  1. serialize() 序列化
  2. unserialize() 反序列化

33. 利用下表结构,写出发贴数最多的十个人名字的SQL语句(members(id,username,posts,pass,email)

  1. select memebers.username from members group by posts desc limit 10

34,.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(?)动态装载PHP模块,然后再用语句(?)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

  1. 1.LoadModule php5_module "c:/php/php5apache2.dll"
  2. 2.AddType application/x-httpd-php .php

35.数据库中的事务是什么?

  1. 事务就是一系列的操作,这些操作完成一项任务。只要这些操作里有一个操作没有成功,事务就操作失败,发生回滚事件。即撤消前面的操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作。

36.apche 和 nginx 的优缺

  1. nginx轻量级,比apache占用更少的内存及资源,抗并发,nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能。apache 相对于nginx 的优点:rewritenginx rewrite 强大,少bug,稳定。(需要性能用nginx,求稳定就apache)。

37.求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

  1. // 方法一:用DateTime类
  2. $day1 = '2003-09-16';
  3. $day2 = '2011-11-23';
  4. $d1 = new dateTime($day1);
  5. $d2 = new dateTime($day2);
  6. echo $d1->diff($d2)->days;
  7. // 方法二,用时间戳计算
  8. echo (strtotime($day2) - strtotime($day1))/(24*3600);

38.下面的代码用来做什么?请解释。$date='08/26/2003';

print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);

  1. 这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:
  2. // 对应一个或更多 0-9,后面紧随一个斜号$regExpression = "([0-9]+)/";
  3. // 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= "([0-9]+)/";
  4. // 再次对应一个或更多 0-9$regExpression .= "([0-9]+)";至于 \\2/\\1/\\3 则是用来对应括号,第一个括号对的是月份

39.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(?)中;而链接到当前页面的URL记录在预定义变量(?)中。

  1. (1) echo $_SERVER['PHP_SELF'];
  2. (2) echo $_SERVER["HTTP_REFERER"];

40.一个函数的参数不能是对变量的引用,除非在php.ini中把(?)设为on.

  1. allow_call_time_pass_reference

今天就先写到这里吧!在后期的面试中遇到不同的面试题我会不定期更新

希望此文会给大家带来帮助,觉写的不错的,对你有帮助中的请动动你的手关注我和点赞分享,祝愿正在找工作的你,能找一份满意的工作。祝你新的旅途愉快!

以上就是PHP 经典面试题集的详细内容

相关推荐:

分享一波腾讯PHP面试题

2019年PHP最新面试题(含答案)

Redis 高级面试题 学会这些还怕进不了大厂?

阿里面试官三年经验PHP程序员知识点汇总,学会你就是下一个阿里人!

php面试题之PHP核心技术

掌握 Redis这些 知识点,面试官一定觉得你很 NB

PHP 经典面试题集的更多相关文章

  1. 李洪强iOS经典面试题135-Objective-C

    可能碰到的iOS笔试面试题(5)--Objective-C 面试笔试都是必考语法知识的.请认真复习和深入研究OC. Objective-C 方法和选择器有何不同?(Difference between ...

  2. Linux 经典面试题

    [Linux  经典面试题] 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文 ...

  3. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿:         <剑指Offer>一书源自该书作者何海涛坚持更新与编写的博客(http://zhedahht.blog.163.com/),该博客收集整理了大量如微软.Goo ...

  4. Java程序员面试题集(71-85)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...

  5. Java程序员面试题集(1-50)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...

  6. Java面试题集(1-50)

    下面的内容是对网上原有的面试题集及答案进行了全面修订之后的内容(原来的题目有很多重复无用的题以及错误的答案),参照了JDK最新版本,删除了重复题目以及EJB2.x等无用内容,补充最新面试题.知识点巩固 ...

  7. Java面试题全集(上-中-下)及Java面试题集(1-50/51-70)

    阅读量超百万级的文章,收藏并分享一下.感谢原创作者的总结 对初中级java开发人员有特别大的帮助,不论是技术点面试还是知识点总结上. Java面试题全集(上):     https://blog.cs ...

  8. MySql_34道经典Sql试题

    MySql_34道经典Sql试题   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiaouncle/article/details/799390 ...

  9. Java程序员面试题集(1-50

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...

随机推荐

  1. python实现以立春为起点n为周期任意日期所在的日期区间

    python实现以立春为起点n为周期任意日期所在的日期区间 需求 话不多说,直接上具体需求. ''' 以每年的立春作为起始点,每N天为一个单元,任给一个日期,返回该日期所在单元的起始和结束日期.例如: ...

  2. IntelliJ IDEA和Eclipse设置JVM运行参数

    打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 vmoptions 文件,需针对不同的JDK进行配置: 32 位:idea.exe.vmoptions64 位:idea64.exe.v ...

  3. jquery tab点击切换的问题

    问题: 页面结构见下 <div id="wrap"> <li> <a href="#" class="active&qu ...

  4. 在做微信分享到朋友圈时,手机扫码报config:invalid signature,分享后后正常的问题,是url问题

    是按照以下步骤检查的 除了ACCESS_TOKEN没有缓存其他都可以 如果是invalid signature签名错误.建议按如下顺序检查: 1.确认签名算法正确,可用 http://mp.weixi ...

  5. 2019-9-2-Visual-studio-创建项目失败vstemplate

    title author date CreateTime categories Visual studio 创建项目失败vstemplate lindexi 2019-09-02 12:57:38 + ...

  6. 洛谷P2590 [ZJOI2008]树的统计 题解 树链剖分+线段树

    题目链接:https://www.luogu.org/problem/P2590 树链剖分模板题. 剖分过程要用到如下7个值: fa[u]:u的父节点编号: dep[u]:u的深度: size[u]: ...

  7. 基于ThinkPHP与阿里大于的PHP短信验证功能

    https://blog.csdn.net/s371795639/article/details/53381274 PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定A ...

  8. java构造方法的私有化

    有的时候我们为了避免外界创建某类的实例,就将某类的构造方法私有化,即将它的构造方法用private修饰: 外界如何用到? 提供get方法!不提供的话外界就没法创建对象!(对反射无效) Eg:packa ...

  9. 带你认识“货真价实”的P2P网贷风控

      文/杨帆 说起P2P,多数金融圈内人士已经并不陌生.国内现有近千家的P2P网贷平台,动辄打出高息诱人的收益率宣传口号以及眼花缭乱的安全承诺.但是在这些浮华表面的背后,关于P2P的风控很多人仍然是一 ...

  10. P1101 走迷宫一

    题目描述 大魔王抓住了爱丽丝,将她丢进了一口枯井中,并堵住了井口. 爱丽丝在井底发现了一张地图,他发现他现在身处一个迷宫当中,从地图中可以发现,迷宫是一个N*M的矩形,爱丽丝身处迷宫的左上角,唯一的出 ...