php必学必会

1.echo,print,print_r的区别

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

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

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

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

总结:

PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行下面的代码后变量$r的值将为1。
$r = print "Hello World";
这意味着print可用在一些复杂的表达式中,而echo则不行。但是,因为echo语句不要求返回任何数值,所已在代码中echo语句的运行效率要略微快于print语句。

echo 没有返回值;print 有返回值,print 的返回值总是1。

php 各种输出的对比:https://www.cnblogs.com/answer727/p/10012229.html

2.include 与require的区别

require() 语句的性能与 include() 相类似,都是包括并运行指定文件。不同之处在于:对 include() 语句来说,在执行文件时每次都要进行读取和评估;而对于 require() 来说,文件只处理一次(实际上,文件内容替换 require() 语句)。这就意味着如果可能执行多次的代码,则使用 require() 效率比较高。另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用 include() 语句。

require() 的使用方法如:

require("myfile.php")

这个语句通常放在 PHP 脚本程序的最前面。PHP 程序在执行前,就会先读入 require() 语句所引入的文件,使它变成 PHP 脚本文件的一部分。

include() 使用方法和 require 一样如: 

include("myfile.php")

这个语句一般是放在流程控制的处理区段中。

PHP 脚本文件在读到 include() 语句时,才将它包含的文件读取进来。这种方式,可以把程式执行时的流程简单化。

  • incluce 在用到时加载
  • require 在一开始就加载
  • _once 后缀表示已加载的不加载

include 引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。

require 引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。

3.cookie和session

https://www.cnblogs.com/ganwenjun/p/6914887.html

 4.php的面向对象

https://www.jianshu.com/p/d3edc23718fc

5.php常见函数

https://www.cnblogs.com/qczy/p/11074796.html

6.单引号和双引号的区别

①转义的字符不同

单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列

②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。

③解析速度不同

单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql 语句

7.比较好的面试题:https://www.cnblogs.com/gaowei521/p/10755237.html

8.YII https://www.cnblogs.com/wudanyang/p/11567954.html

9.对象的传递:https://blog.csdn.net/wozhangyi/article/details/105761099

一个对象变量并不是保存整个对象的值,而是保存一个对象标识符来访问真正的对象内容,因此,当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝,这个标识符指向同一个对象的真正内容

10.var_dump https://www.cnblogs.com/banml/p/13215505.html

var_dump() 函数用于输出变量的相关信息。

var_dump() 函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

11.数据库的优化:https://www.cnblogs.com/liliuguang/p/11015964.html

              1),数据表中的数据类型的优化  如选择合适的字段,选择效率快速的字段 

    2),索引优化

    3)、SQL语句的优化

      (1)优化查询过程中的数据访问如使用limit、使用返回列不用*

      (2)优化长难句的查询语句 变复杂为简单、切分查询、分解关联查询

      (3)优化特定类型的查询语句如优化count()、优化关联查询、优化子查询、优化Group by、优化li'mit

    4)、存储引擎的优化

      (1)尽量使用InnoDB存储引擎,因为它支持事务、外键、使用独立表空间、使用的是行级锁、

    5)、数据表结构的设计优化

      (1)分区操作 如通过特定的策略对数据进行物理拆分、对用户透明的、partition by

      (2)分库分表  如水平拆分(以行级进行拆分)、垂直拆分(列及拆分)

    6)、数据架构的优化

      (1)主从复制

      (2)读写分离

      (3)双主热备

      (4)负载均衡  通过LVS的三种模式实现的、Mycat数据库中间件实现的

虽千万人吾往矣...
原文地址:https://www.cnblogs.com/rainisraining/p/14754336.html