0

我正在尝试从程序切换到 OOP php,我可以连接到数据库并在程序中很好地使用它,但是经过几个小时的挠头、谷歌搜索和一些小的调整/更改后,我承认失败并得出结论,我一定错过了一些东西.

我有两个文件,我的 IDE 标记语法问题显然与第一个文件(test.php)的“函数”部分有关,但我就是不知道是什么,有没有人有任何想法?这两个文件在下面。抱歉格式化,但由于某种原因,我无法在此文本区域中进行选项卡。

我假设它与缺乏构造函数有关。我试图添加一个而不是配置函数,但我仍然有语法问题。在文档/教程中,我可以找到 php 中的构造函数和 html 中的函数,但似乎没有任何内容可以解释它们如何与示例一起工作。

免责声明:这两个文件都被标签包围<?php ?>,我目前没有解决安全措施。在你可以跑步之前先走路等等。我还尝试在 test.php 的开头抛出一个 doctype 并在适当的地方用标签填充它,<html> <head><body>无济于事。使用 Apache 2.2.22 和 PHP 5.3.13。

// ------- Test.php start -------
include 'obj_lib.php';

$db = new database;
$db = function config('test', 'root', '', 'localhost');
$db = function connect();
$db = function test_database();
// ------- Test.php end -------

// ------- obj_lib.php start -------
class database
{
  private $username;
  private $password;
  private $database;
  private $server;
  private $db_handle;
  private $db_found;

   public function config($indatabase=null, $inusername=null, $inpassword=null, $inserver=null)
   {
   $this->username = $inusername;
   $this->password = $inpassword;
   $this->database = $indatabase;
   $this->server   = $inserver;
   }

   public function connect()
   {
   $this->db_handle = mysql_connect($this->server, $this->username, $this->password);
   $this->db_found = mysql_select_db($this->database, $this->db_handle);
   }

   public function test_database()
   {
   echo "$this->username"."$this->password"."$this->database"."$this->server"."$this->db_handle"."$this->db_found";
   }
 }
// ------- obj_lib.php end -------
4

1 回答 1

3
$db = new database;
$db = function config('test', 'root', '', 'localhost');
$db = function connect();
$db = function test_database();

应该

$db = new database;
$db->config('test', 'root', '', 'localhost');
$db->connect();
$db->test_database();
于 2012-11-19T23:44:54.800 回答