1、include 和 require 都能把另外一个文件包含到当前文件中 他们有什么区别?include 和 include_once 又有什么区别?
二者区别只有一个,那就是对包含文件的需求程度
include 就是包含,如果被包含的文件不存在的话, 那么则会提示一个错误,但是程序会继续执行下去。
require 意思是需要,如果被包含文件不存在或者 无法打开的时候,则会提示错误,并且会终止程序的执行。
这两种结构除了在如何处理失败之外完全一样。
once 的意思是一次,那么 include_once 和 require_once 表示只包含一次,避免重复包含。
2、常用字符串函数:
1. explode — 使用一个字符串分割另一个字符串
2. htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
3. htmlspecialchars — 将特殊字符转换为 HTML 实体
4. implode — 将一个一维数组的值转化为字符串
5. join — 别名 implode
6. lcfirst — 使一个字符串的第一个字符小写
7. ucfirst — 将字符串的首字母转换为大写
8. ucwords — 将字符串中每个单词的首字母转换为大写
9. ltrim — 删除字符串开头的空白字符(或其他字符)
10. md5 — 计算字符串的 MD5 散列值
11. rtrim — 删除字符串末端的空白字符(或者其他字符)
12. sha1 — 计算字符串的 sha1 散列值
13. str_replace — 子字符串替换
14. strip_tags — 从字符串中去除 HTML 和 PHP 标记
15. stripos — 查找字符串首次出现的位置(不区分大小写)
16. strlen — 获取字符串长度
17. strpos — 查找字符串首次出现的位置
18. strrev — 反转字符串
19. strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
20. strstr — 查找字符串的首次出现
21. strtolower — 将字符串转化为小写
22. strtoupper — 将字符串转化为大写
23. substr_replace — 替换字符串的子串
24. substr — 返回字符串的子串(第二参数为数字strstr 为字符串)
25. trim — 去除字符串首尾处的空白字符(或者其他字符)
3、常用数组函数
1. array_change_key_case — 将数组中的所有键名修改为全大写或小写
2. array_chunk — 将一个数组分割成多个
3. array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
4. array_diff — 计算数组的差集
5. array_filter — 用回调函数过滤数组中的单元
6. array_key_exists — 检查数组里是否有指定的键名或索引
7. array_keys — 返回数组中部分的或所有的键名
8. array_map — 为数组的每个元素应用回调函数
9. array_merge — 合并一个或多个数组
10. array_multisort — 对多个数组或多维数组进行排序
11. array_pop — 弹出数组最后一个单元(出栈)
12. array_push — 将一个或多个单元压入数组的末尾(入栈)
13. array_reverse — 返回单元顺序相反的数组
14. array_search — 在数组中搜索给定的值,如果成功则返回首个相应的键名
15. array_shift — 将数组开头的单元移出数组
16. array_unshift — 在数组开头插入一个或多个单元
17. array_values — 返回数组中所有的值
18. array_unique — 移除数组中重复的值
19. arsort — 对数组进行逆向排序并保持索引关系(索引数组大到小排序)
20. asort — 对数组进行排序并保持索引关系(索引数组小到大排序)
21. ksort — 对数组按照键名排序(关联数组按abc顺序排序)
22. krsort — 对数组按照键名逆向排序(关联数组cba顺序排序)
23. count — 计算数组中的单元数目,或对象中的属性个数
24. in_array — 检查数组中是否存在某个值
25. list — 把数组中的值赋给一组变量
4、 获取ip方法
客户端ip : $SERVER[“REMOTE_ADDR”]
服务端ip : gethostbyname("www.367edu.com")
5、TP5和Laravel框架的区别
1.在Laravel框架里,由于其考虑到了跨站请求伪造, 所以如果使用form表单以post方式进行传值时,如果不再form表单中加入{
{csrf_field()}}则会报出TokenMethodnotfound的语法错误;而TP框架则需要自己手动完成防止跨站攻击的代码;
2.Laravel是一个重路由的框架(5.4),所有的功能都是由路由发起的,哪怕没有控制器方法,只要写了路由就能够访问,thinkPHP(3.2),必须要有控制器方法才能正常访问;
3.中间件,Laravel特点,可以实现访问前后的处理,例如请求和返回,权限认证等;
4、Lavavel更庞大,安全性也更高,更适合开发大中型项目,被称为“巨匠型开发框架”。
6、魔术方法
__construct(), 实例化对象时被调用
__destruct(), 当删除一个对象或对象操作终止时被调用。
__call(), 对象调用某个方法若不存在,则会去调用__call函数。
__callStatic(),当创建一个静态方法以调用该类中不存在的一个方法时使用此函数。与__call()方法相同,接受方法名和数组作为参数。
__get(),读取一个对象的属性时若不存在,则会调用__get函数。
__set(), 设置一个对象的属性时若不存在,则会调用__set函数。
__isset(),检测一个对象的属性是否存在时被调用。
__unset(),删除一个对象的属性时被调用。
__sleep(),serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
__wakeup(), unserialize时被调用,做些对象的初始化工作。
__toString(), 打印一个对象的时被调用。
__invoke(),把实例对象当作方法调用
__set_state(),调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
__clone() 克隆对象时被调用。如:$t&