求助,初级 PHP 自定义函数问题

2019-07-18 22:03:27 +08:00
 peizhao2017

原代码正常

// 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

请问哪里错误了呢?

1347 次点击
所在节点    问与答
10 条回复
AngryPanda
2019-07-18 22:08:37 +08:00
变量作用域问题。
函数内的$database 变量没有初始化
berumotto
2019-07-18 22:15:34 +08:00
多了个,
berumotto
2019-07-18 22:16:35 +08:00
@berumotto 看错了
berumotto
2019-07-18 22:19:52 +08:00
如楼上所说的
peizhao2017
2019-07-18 22:28:36 +08:00
@AngryPanda
试了下
$database =“”;
还是错误~
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 要传进函数
xlcoder166
2019-07-18 23:17:24 +08:00
echo get_id($database);

这里也要加上
peizhao2017
2019-07-18 23:21:48 +08:00
改成这样

把$database 设置成了全局参数

到是能出结果

有什么弊端吗?

function get_id(){

global $database;

$id = $database->get("date", "id", ["name" => $value]);
return $id;

}
coder1
2019-07-19 00:59:43 +08:00
别的不说,你把 use Medoo\Medoo 给注释了
peizhao2017
2019-07-19 10:11:37 +08:00
@coder1
没注释

复制过来格式变了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/584240

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX