2012-01-20 10 views
1

私はクラスがあります。クラスにphp関数を含めるには?

class Connect 
{ 
    public function auth() 
    { 
     ... do something 
    } 
} 

を、私は機能を持っている:connect.php

<?php 
function connect($host, $database) 
{ 
    database connection here 
} 
?> 

どのように私はこれを使用することができます:

<?php 
require_once($GLOBALS['path']."connect.php"); 
?> 

私が持っているgetfile.phpこのような私のクラス内の関数:

class Connect 
{ 
    require_once("getfile.php"); 
    public function auth() 
    { 
     connect($host, $database) 
     ... do query 
    } 
} 

これは可能ですか?

ありがとう

+1

:あなたは本当にただ何かがその特定のファイルがその具体的な方法で必要とされるときにのみ含まれたい場合は、このような何か? –

+0

まあ、これは可能であることは確かではない、クラス内に他の関数を必要とするために、含まれる関数はクラスではないので、どうすれば使用できますか? – Patrioticcow

答えて

2

機能をグローバルに提供されています。したがって、必要な場所に含める必要はなく、関数のファイルをスクリプトの先頭に含めてください。

第二に、

class Connect 
{ 
    require_once("getfile.php"); 
    public function auth() 
    { 
     connect($host, $database) 
     ... do query 
    } 
} 

これは単なるjibberishです。メソッドの外でクラス内で何かを実行することはできません。あなたがしようとしたとき、あなたは何を困難に遭遇でした

class Connect 
{ 
    public function auth() 
    { 
     require_once("getfile.php"); 
     connect($host, $database) 
     ... do query 
    } 
} 
+0

私は、 'require_once(" getfile.php ");を呼び出す' _construct'をクラスに追加することができますか? – Patrioticcow

+0

ただし、関数がグローバルに動作する必要がある場合は、グローバルスコープに含める必要があります。ローカルでのみ必要な場合は、__constructまたは指定された方法で使用しないでください。 – Repox

3

このようにしてクラスに関数を追加することはできません。

mixinsをクラスに追加しようとしている場合は、you should read thisです。

そうしないと、基本クラス(または抽象クラス)を作ることによって、標準的なOOPの実践に固執し、それを拡張する必要があります:グローバルスコープで宣言

class Connect extends Connector 
{ 
    ... 
} 

class Connector 
{ 
    public function connect($host, $database) { 
    ... 
    } 
} 
+0

提案がありますか? – Patrioticcow

+0

たくさんのありがとう。 – Patrioticcow

関連する問題