PHP的一些常用函数和变量(实践向)

&&& call_user_func_array 推荐用

call_user_func_array($callback,$param)
调用函数方法 call_user_func_array('funcA', array("111", "222"));
调用类里方法 call_user_func_array(array('ClassA','bc'), array("111", "222"));

call_user_func ($callback ,$param1,$param2) //第一个参数是回调 其余是参数
调用函数方法 call_user_func('funcA', "111","222");
调用类里方法 call_user_func(array("ClassA", "b"),"111");

//可参考 [https://blog.csdn.net/u014532717/article/details/56015077](https://blog.csdn.net/u014532717/article/details/56015077)

//案例
回调函数:我的理解:参数形式使用匿名函数

调用 funcUse(param1,function(){
});

定义:
funcUse(param1,$callback){
	里面用 call_user_func ($callback)
}

&&& method_exists

if(method_exists($this, 'son_fun1')) echo 'son_fun1存在';

Class相关

static 延迟绑定
    代表继承后的类,多用于父类中填写
    用户属性与方法时代表类的规则

self 当前类
指向出现的当前类,子类中继承的方法调用的类实际上是父类

parent 父类
多用来复写父类方法与属性

$this
代表类实例化后的对象

abstract | interface
	abstract 复写
	interface 统一规范

Exception 错误处理
	throw 类中抛出错误,不进行处理
	try catch finally 逻辑层获取并处理错误

拦截器(overloading | interceptor | 魔术方法)

    __call()  //当对象访问不存在的方法
	__callStatic() //[https://www.recwe.com/article/72](https://www.recwe.com/article/72)
    __construct() | destruct()
    __get() | set() //当对象访问不存在的属性 设置不存在的属性
 	array_splice(array,start,length,array) //数组中的一系列元素,但不返回,而是删除它们并用其它值代替
	array_slice(array,start,length,preserve) //数组中根据条件取出一段值

$names = ['张三','李四','王麻子','李四',];
$names = array_values(array_diff($names, ['李四']));

array_flip 键值反转

 	compact() 函数创建一个包含变量名和它们的值的数组

substr(__FILE__,strlen(__DIR__)-strlen(__FILE__)+1)  获取当前脚本当前文件名

PHP 根据数组值取得键值
    $arr = [1 => '余温', 3 => '红楼梦', '内容' => '水浒传'];
    echo array_search('红楼梦', $arr) . '</br>';
    //echo: 3;


php将两个数组相同的key合并到一个数组:
https://www.cnblogs.com/wrld/p/10966190.html

$shop_name = array_column($arr2, 'shop_name', 'id');
foreach($arr as $key => $item) {
    $exist = array_key_exists($item['id'], $shop_name);
    $arr[$key]['shop_name'] = $exist ? $shop_name[$item['id']] : '';
}

#常用案例

//php后台判断ajax请求
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && $_SERVER["HTTP_X_REQUESTED_WITH"] === "XMLHttpRequest") {
}

ini_set("error_reporting","E_ALL & ~E_NOTICE"); //忽略错误


mysql  stmt预处理
$db = new mysqli($mysql_server,$mysql_username,$mysql_password,$mysql_database) or die("error connecting");
mysqli_query($conn,"set names 'utf8'"); //数据库输出编码
$stmt = $db->prepare('SELECT id, title, content FROM posts WHERE id = ?');
$stmt->bind_param('i', $id);
$stmt->execute();
//如果能用get_result,一句就能返回
return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
//如果不能用get_result,那就得改成下面
$stmt->bind_result($id, $title, $content);
$stmt->store_result();
$rows = array();
$i = 0;
while ($stmt->fetch()) {
    $rows[$i]['id'] = $id;
    $rows[$i]['post_title'] = $title;
    $rows[$i]['post_content'] = $content;
    $i++;
}
$stmt->free_result();
$stmt->close();
return $rows;

记录你我
请先登录后发表评论
  • latest comments
  • 总共0条评论