0

手続き型からOOPphpに切り替えようとしています。データベースに接続して、手続き型で問題なく使用できますが、数時間の頭を悩ませたり、Googleで検索したり、微調整や変更を加えたりした後、敗北を認め、何かが欠けているに違いないと結論付けました。 。

私は2つのファイルを持っています、私のIDEは、構文の問題が明らかに最初のファイル(test.php)の「関数」の部分にあることを示していますが、私は何を理解できません。2つのファイルは以下のとおりです。フォーマットして申し訳ありませんが、何らかの理由でこのテキストエリア内にタブを付けることができません。

コンストラクターの欠如と関係があると思います。config関数の代わりに1つ追加しようとしましたが、まだ構文の問題があります。ドキュメント/チュートリアルでは、phpのコンストラクターとhtmlの関数について言及していますが、例と一緒にどのように機能するかを説明しているものは何もないようです。

免責事項:両方のファイルはタグで囲まれて<?php ?>おり、現在セキュリティ対策については触れていません。走る前に歩いてください。<html> <head>また、test.phpの先頭にDoctypeをスローし、必要に応じて<body>タグを付けてパディングしようとしましたが、役に立ちませんでした。Apache2.2.22およびPHP5.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 に答える