### 1、echo、print、print\_r/var\_dump的区别
~~~
echo():可以一次输出多个值,多个值用逗号隔开,echo是语言结构,而并不是真正的函数,因此不
能作为表达式的一部分使用。
print():打印一个值(它的参数),如果字符串成功显示则返回true,否则返回false
print_r():可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头
var_dump():判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型。此函数显示关于一
个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
~~~
### 2、include、include\_once、require、require\_once的区别
~~~
include():使用include应用外部文件时,只有代码执行到include语句时,外部文件才会被引入并读取,当所引用的外部文件
发生错误时,系统只给出一个警告,而整个php文件则继续向下执行。
include_once():使用include_once语句会在导入文件前先检测该文件是否在该页面的其他部分被应用过,如果有,则不会重复
引用该文件,程序只能引用一次。
require():使用require语句来调用文件时,如果调用的文件没找到,require语句会输出错误信息,并且立即终止脚本处理
require_once():使用require_once语句时,会先检查要引用的文件是不是已经在该程序中的其他地方被引用过,如果有,则不
会在重复调用该文件,在同一个页面中引用了两个相同的文件,那么在输出时,只有第一个文件被执行,第二次引用的文件
则不会被执行。
~~~
### 3、empty、isset、is\_null的区别
~~~
empty:如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var;
以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE
isset: 检测变量是否设置;如果 var 存在则返回 TRUE,否则返回 FALSE。如果已经使用 unset() 释放了一个变量之后,它
将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。
is_null:当参数满足下面三种情况时,将返回TRUE,其它的情况就是FALSE。
* 它被赋值为NULL
* 它还没有赋值
* 它未定义,相当于 unset(),将一个变量 unset()后,不就是没有定义吗
$myvar = NULL;
var_dump(is_null($myvar)); // TRUE
$myvar1;
var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable
$num = 520;
unset($num);
var_dump(is_null($num)); //TRUE Notice: Undefined variable
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable
$myvar = 0; is_null($myvar); // FALSE
$myvar = FALSE; is_null($myvar); // FALSE
$myvar = ''; is_null($myvar); // FALSE
~~~
### 4、双引号和单引号的区别
~~~
一般情况下两者是通用的.但双引号内部变量会解析,单引号则不解析.
双引号中的变量和特殊字符 (\r\n) 会被转义,单引号中的内容不会被转义
~~~
### 5、session和cookie的区别
~~~
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。
(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
(3)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
(4)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE
~~~
### 6、get和post的区别
~~~
(1)GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接;
(2)POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。
(3)GET请求在URL中传送的参数是有长度限制的,而POST没有。
(4)POST相对于GET更加安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
~~~
### 7、传值与传引用的区别
~~~
传值:把实参的值赋值给形参,对形参的修改不会影响到实参的值
传引用:真正的以地址的方式传递参数,传递以后,行参和实参都是同一个对象,对行参的修改将影响实参的值
~~~
### 8、==和===的区别、“!==”与“!=”的区别
~~~
===比较两个变量的值和类型;==比较两个变量的值,不比较数据类型。
~~~
### 9、->和=>的区别
~~~
->用来引用对象的成员(属性与方法)
=>只用来数组赋值
~~~
### 10、?? 与 ?:区别
~~~
?? :用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值
?:常用于三元运算符,问号的作用是选择条件作为程序继续执行的分支
~~~
### 11、跳出循环:exit、return、break、continue之间的区别
~~~
exit:用来结束程序执行的。可以用在任何地方,本身没有跳出循环的含义。
return:
(1)从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2)返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
(3)return 后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
break:
(1)当它在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转
向循环语句下面的语句。
(2)当它出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
continue:终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
~~~
### 12、function\_exists、method\_exists、class\_exists、property\_exists、is\_subclass\_of 的区别
~~~
function_exists( string $function_name ) : 函数用于检测函数是否被定义,检测的函数可以是 PHP 的内置函数,也可以
是用户的自定义函数。如果被检测的函数存在则返回 TRUE ,否则返回 FALSE 。
method_exists ( mixed $object , string $method_name ) :检查类的方法是否存在于指定的 object中。如果检测的方法存
在与指定的对象中,则返回true,否则返回false。
class_exists ( string $class_name [, bool $autoload = TRUE ] ) :检查类是否被定义。第一个参数为检测的类名(如果
使用了命名空间后,需要使用完整的带命名空间的类名,如:app\admin\service\UserService ); class_exists()会默认将
会尝试调用 _autoload,如果不想让 class_exists() 调用_autoload,可以将 autoload 参数设为 FALSE。
property_exists([mixed] $class,string $property):判断类或对象中的属性是否存在(可无视属性权限),存在返回true,
否则返回false,$class 可以是类名(字符串)或类对象,$property为属性的名字
is_subclass_of ( object $object , string $class_name ):判断一个对象是否为一个类的子类,返回bool值
~~~
### 13、PHP四种网页重定向方式
~~~
header('location:http://www.baidu.com');
echo '<meta http-equiv="refresh" content="1;http://www.baidu.com">';
echo '<script>window.location.href="http://www.baidu.com"</script>';
echo file_get_contents('http://www.baidu.com');
~~~
### 14、php三种合并数组的方式
~~~
array_merge($arr, $arr_1); // 合并数组,如果健名为整数,键名会从 0 开始进行重新索引。
array_merge_recursive($arr, $arr_1); // 递归合并数组,不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组
$arr + $arr_1 // 保留键名,追加数组
~~~
- 服务器购买到搭建宝塔
- 结构规范
- php基础
- php简介
- php是什么
- PHP 能做什么
- PHP 如何运行
- 如何了解弱语言
- 安装环境
- 安装LNMP
- 宝塔
- phpstudy
- PHP基本语法
- PHP 标记
- 从 HTML 中分离
- 指令分隔符
- 注释
- php 数据类型
- 类型检测
- 四种标量类型
- boolean(布尔型)
- Integer 整型
- Float 浮点型
- String 字符串类型
- 两种复合类型
- array(数组)
- object(对象)
- 两种特殊类型
- resource(资源)
- NULL(无类型)
- 类型转换
- 变量
- 变量定义和命名规范
- 传值和引用
- 预定义变量
- php预定义变量
- $_SERVER详解
- 变量范围
- 全局变量
- 静态变量
- 可变变量
- 常量
- 常量简介
- 常量定义
- 相比变量
- 魔术常量
- 运算符
- 运算符简介
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 错误控制运算符
- 执行运算符
- 递增(减)运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 新增操作符
- 控制结构
- 控制简介
- if 语句
- while 语句
- for 语句
- foreach 语句
- break 语句
- continue 语句
- switch 语句
- declare 语句
- return 语句
- include 语句
- PHP 函数
- 函数简介
- 用户自定义函数
- 函数的参数
- 返回值
- 可变函数
- 内部函数
- 匿名函数
- PHP 的类和对象
- PHP 的类和对象简介
- 基本概念
- 对象继承
- 属性
- 类常量
- 自动加载对象
- 构造和析构函数
- 访问控制
- 范围解析操作符(::)
- 静态static
- Static 关键字
- 抽象类
- 接口
- 匿名类
- 面向对象其他特性
- const关键字
- final关键字
- abstract用于定义抽象方法和抽象类。
- self、$this、parent::关键字
- 接口(interface)
- trait关键字
- instanceof关键字
- 魔术方法
- 构造函数和析构函数
- 私有属性的设置获取
- __toString()方法
- __clone()方法
- __call()方法
- 类的自动加载
- 会话控制
- cookie
- PHP 操作 cookie
- 项目实战
- SESSION
- Session 的初步介绍与实验准备
- PHP 操作 session
- 项目实战2
- http
- 特点
- 工作过程
- request
- response
- HTTP状态码
- URL
- GET和POST的区别
- HTTPS
- 常用函数
- 常用的字符串函数
- 常用的数组函数
- 常用文件函数
- 常用时间函数
- 常用日历函数
- 常用url函数
- 面试题常见
- 时间戳
- 技术类文档
- 技术开发文档
- 开发环境
- 开发规范
- 注释规范
- 开发目录结构
- 数据库字典
- 路由
- 定时任务
- 获取系统配置
- 系统常用函数
- 后台表单
- 消息队列
- 第三方类库标注
- 需求文档
- 数据库
- MYSQL
- 事务(重点)
- 索引
- 存储过程
- 触发器
- 视图
- 导入导出数据库
- 优化mysql数据库的方法
- MyISAM与InnoDB区别
- 外连接、内连接的区别
- 物理文件结构
- MongoDB
- Redis
- 运用场景和实例
- pgsql
- 服务器
- Nginx
- 正向代理和反向代理
- 负载均衡
- Linux常用命令
- 基本目录和命令
- php开发工具
- phpStorm编辑器
- 安装和汉化
- 链接ftp
- 常用操作
- 常用快捷键
- 自定义快捷键
- 使用快捷键新建目录和文件
- 使用快捷键快速查找文件、类、方法
- 多文件切换
- 快速搜索设置项
- 多点编辑
- 方法重构
- 自定义文件模板和代码片段
- 自定义文件模板
- 自定义代码片段
- Xdebug 调试插件
- 安装Xdebug 调试插件
- 在PHPStorm 中使用 Xdebug 插件调试代码
- Vi Box虚拟机
- Vi Box 虚拟机 Oracle VM VirtualBox
- 虚拟机辅助工具一-Vagrant
- 华硕主板BIOS设置中VT虚拟化技术选项怎么开启 Oracle VM VirtualBox
- 沟通工具
- 文档分享
- 流程图
- 任务分配
- 代码托管
- 缺陷管理
- 设计图
- gitLab
- 安装
- 汉化
- Gitlab 用户和项目管理
- Gitlab 持续集成与自动构建实践
- PHP进阶
- 大流量解决方案
- PSR规范
- RESTFUL规范
- 设计模式
- 单例模式
- 策略模式
- 工厂模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 外观模式
- 享元模式
- 代理模式
- 命令模式
- 中介者模式
- 观察者模式
- 状态模式
- 建筑者模式
- 适配器模式
- 桥接模式
- 装饰器模式
- 排序算法
- 冒泡排序算法
- 二分查找算法
- 直接插入排序算法
- 希尔排序算法
- 选择排序算法
- 快速排序算法
- 常见网络攻击类型
- CSRF攻击
- XSS攻击
- SQL注入
- Cookie攻击
- thinkphp
- thinkphp5命令行
- git
- Git 常用命令操作和基础学习
- 傻瓜与白痴的笔记本
- 学习
- 一、Git 与 GitHub 的来历
- 二、在 GitHub 上创建仓库
- 三、安装
- Windows 上安装 Git
- 安装2
- 四、克隆 GitHub 上的仓库到本地
- 五、GIT基本操作哦
- 六、Git 分支操作
- 一、添加SSH关联授权
- 二、为 Git 命令设置别名
- 三、Git 分支管理
- 七、多人协作 GitHub 部分
- 八、多人协作 Git 部分
- 九、Git tag 和 GitHub releases
- composer
- Composer 基础使用
- 安装和使用
- 在项目中集成PHPmailer
- 认识composer.json和composer.lock文件
- composer的其他命令操作
- 本地创建composer包
- 提交自己的依赖包到composer Packagist
- crontab计划任务
- Linux任务计划crontab
- php 的 计划任务——Crontab
- bootstrap前端框架
- 入门
- 实战技巧
- 后台模板样式——admin
- 第三方接口对接
- 微信
- 敏感词过滤
- 微信图片检测
- 短信类型
- 阿里云短信
- 容联云短信
- 飞鸽短信
- 媒体
- 新闻接口测试
- 免费新闻
- 免费视频
- nba赛事,未测试
- 豆瓣电影接口
- 音乐接口
- 网易短视频接口
- 知乎微信接口
- 百度ai
- 百度语音
- 图片识别
- 腾讯
- 腾讯im
- 腾讯云直播
- 腾讯滑动验证
- 物流快递
- 快递鸟、快递100
- 推送
- 极光推送
- 地图&天气
- 获取城市和天气预报
- 地址获取和定位
- 地址转换经纬度
- 图片类型
- 360新闻图片
- 多平台翻译
- 实名认证
- 七牛云
- 云合同
- 多站点收录查询接口
- 打印机
- 第三方登录
- 微信登录
- 支付
- 支付宝app支付
- 微信提现+退款
- 微信app支付
- 微信支付公式
- 类库
- 图片类
- phpqrcode实战:生成二维码
- 图片处理类
- 验证码类
- 消息类
- PHPMailer
- 分词类
- ik
- PHPAnalysis
- 自己封装的方法
- GD库
- 自动获取图片主题颜色
- 图片转素描
- 生成海报
- 图片转字符
- 验证码
- 图片转黑白灰
- GD库实现图片水印与缩略图
- Imagick扩展
- 将一张image图片转化为字符串的形式
- 基本方法
- 图片路径转base64
- 生成文件后缀图片
- url路径判断拼接
- 防篡改入口文件
- php中文姓名判断
- 可控抽奖
- 特殊截取
- 银行卡位(特殊卡号不支持)
- 微信红包计算
- 数组和对象互转
- php批量更新修改数据库
- base64_img上传
- 删库删目录————跑路
- 字符串特殊符号过滤
- 首字母转成默认头像
- 生成随机字符串
- 根据id转 邀请码
- 日志写入
- 字符串截取,超出显示省略号
- 清除html标签+清除html标签,字符串截取
- 计算时间差的函数和演示
- php判断路径是否是绝对路径,如果不是拼接至绝对路径
- sql 参数过滤
- php敏感词过滤
- 省市区分别截取
- 生成csv
- 无限极分类
- api接口返回封装的方法函数
- xml和数组互转
- 获取thinkph5下控制器和方法名
- 过滤
- 获取服务器信息
- php随机颜色
- 创建多级目录
- 推广码
- 跨域检测
- 二维码
- 文档类
- word
- PHPWord
- tcPdf
- MPDF
- dompdf
- FPDF、Fpdi类库
- excel
- PhpSpreadsheet导入
- phpExcel
- 时间
- PHP-农历+节气+节日等类库
- 时间类库
- 最好用的是人性化时间差
- 文件管理类
- 文件操作类
- 文件夹操作
- php操作ftp的类库
- curl
- 数据库操作类
- Db扩展函数
- 数据库备份
- 仿tp5的Db库
- 不常用mysql
- 自动生成数据库字典
- 字符串
- 字符串操作helper/Str
- 随机生成姓名
- 随机生成类
- php字符串类
- 中文转拼音的类库
- 分类
- 缓存
- 数据验证
- 身份证相关操作
- 安全类
- 表单生成类
- 自动生成表单,未完待续中