这个函数不会回显$title,当我直接把它放在索引文件中时,函数中的代码工作得很好,但是当我用它创建一个函数时,它不会回显任何东西。
我可以创建一个只回显"Hello"
的功能,但这不起作用。
我已经检查了是否包含连接文件。
function title(){
$query = $db->prepare("SELECT * FROM posts");
$query->execute();
$get = $query->fetch();
$title = $get['title'];
echo $title;
}
您正在使用未定义的变量 ( $db
)。如果您没有收到错误消息,则表示您尚未将 PHP 配置为显示错误消息。这是您在进一步之前需要解决的问题;如果没有错误消息的帮助,就不可能正确编码。这里有一个简短的解释。
我建议这样做:
function title(Database $db){
}
。其中Database
是$db
所属的类名(根据问题标签可能PDO
)。
但是,请不要只是应用修复程序并继续前进:确保您收到最轻微的通知。
您需要阅读以下几点:
- 错误报告。为了确保您看到所有错误,我通常在调试时将其写在脚本的顶部(只是不要让这些到达生产站点):
error_reporting(E_ALL);
ini_set('display_errors', 1);
- 环境。在函数中,您将无法访问该函数外部的变量,除非您使用
global
关键字专门请求此操作。
$test = "A";
function testGlobal() {
var_dump(isset($test)); // false
global $test;
var_dump(isset($test)); // true
}
testGlobal();
ou 正在尝试访问函数范围之外的变量$db。
要么在函数 $db = new PDO....] 中重新初始化数据库,要么 - 在您的情况下可能更好、更容易 - 导入全局变量:
函数 getPageContent($page) { 全球$db;
在哪里以及如何最好地存储全局数据库对象是很多讨论的主题。如果你想进入它,这里有一个开始的地方(SO上还有很多其他的地方)。但是如果你刚刚进入PHP,我会说使用全局变量是可以的。