跳至主要內容

PHP高级技巧

Mr.Lexon大约 2 分钟back-end

PHP高级技巧

1. 多维数组

可以将其理解为矩阵,但是与矩阵不同的是,他可以嵌套无限次,所以他更像多维表

2. 日期

见[菜鸟][https://www.runoob.com/php/php-ref-date.html]

3. 引用外部文件

include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的:

include 'filename';
#或者
require 'filename';

4.文件系统

见[菜鸟][https://www.runoob.com/php/php-ref-filesystem.html]

5.cookie和session

php发送cookie是setcookie(name, value, expire, path, domain);,注意,cookie无法通过api发送,仅仅当做网页脚本时使用。同理,seesion也是。 这个其实是错误的,cookie可以通过api发送,但是需要注意跨域问题,并且跨域是无法返回cookie的。 session使用函数为:session_start()然后通过$_SESSION进行操作。可通过session_destroy()卸载session。 这两者之间的区别在于 a). 安全性方面:session存储在服务器端,安全性高cookie存储在浏览器端,安全性低 b). 数据大小方面session数据存储不限cookie的数量和大小都有限制(一个网站最多20个cookie,长度最多4k) c). 可用数据类型session 可以存复杂数据(自动序列化)cookie只能存储简单数据,数值或字符串 e).session是存在服务器的,而cookie是要发送到浏览器的 所以使用登陆信息这种加密性信息时,建议使用redis缓存或者mysql数据库写入。

6.日志方法

debug_backtrace(int `$options` = **`DEBUG_BACKTRACE_PROVIDE_OBJECT`**, int `$limit` = 0): array

产生一条回溯跟踪(backtrace) 见[php手册][https://www.php.net/manual/zh/function.debug-backtrace.php] 其他的再补充

7. 入参传导

假设有一个函数: a($a1,$a2) 他要调用b类里面的同c函数同名的函数,,但是在调用之前要做一下处理,而这个处理需要使用回调函数,并且要使用a函数的所有入参,那么我们就可以这么做:

function a($a1,$a2){
	c($a1,$a2);
}
function c($a1,$a2){
	$method = __FUNCTION__;  
	$args = func_get_args();
	pp::action(function() use ($method,$args,$b){
		$b::{$method}(...$args)
	});
}
class b{
	public static function c($a1,$a2){
		...
	}
	...
}
上次编辑于:
贡献者: Lexon