原代码正常
// Using Medoo namespace
use Medoo\Medoo;
$database = new Medoo([
'database_type' => 'mysql',
]);
$id = $database->get("date", "id", ["name" => $value]);
可以正常获得$id 的值
想弄简化下弄成自定义函数
改成如下代码
// Using Medoo namespace use Medoo\Medoo;
$database = new Medoo([ 'database_type' => 'mysql', ]);
function get_id(){ $id = $database->get("date", "id", ["name" => $value]); return $id; }
echo get_id();
执行提示
Fatal error: Uncaught Error: Call to a member function log() on null
请问哪里错误了呢?
![]() | 1 AngryPanda 2019-07-18 22:08:37 +08:00 via Android ![]() 变量作用域问题。 函数内的$database 变量没有初始化 |
![]() | 2 berumotto 2019-07-18 22:15:34 +08:00 via iPhone 多了个, |
![]() | 4 berumotto 2019-07-18 22:19:52 +08:00 via iPhone 如楼上所说的 |
5 peizhao2017 OP |
6 xlcoder166 2019-07-18 23:16:20 +08:00 $database = new Medoo([ 'database_type' => 'mysql', ]); function get_id($database){ $id = $database->get("date", "id",["name" => $value]); return $id; } echo get_id(); $database 要传进函数 |
7 xlcoder166 2019-07-18 23:17:24 +08:00 echo get_id($database); 这里也要加上 |
8 peizhao2017 OP 改成这样 把$database 设置成了全局参数 到是能出结果 有什么弊端吗? function get_id(){ global $database; $id = $database->get("date", "id", ["name" => $value]); return $id; } |
9 coder1 2019-07-19 00:59:43 +08:00 via iPhone 别的不说,你把 use Medoo\Medoo 给注释了 |
10 peizhao2017 OP |