最近自分で PHP を学び、コードの一部を見ました
class queryFactory extends Base {
var $link, $count_queries, $total_query_time;
queryFactory このクラスには変数がいくつかあります: $link、$count_queries、$ total_query_time。
ただし、queryFactory には connect メソッドがあります
Function connect($zf_host, $zf_user, $zf_password, $zf_database, $zf_pconnect = 'false', $zp_real = false) {
$this->database = $zf_database;
$ this->user = $zf_user;
$this->host = $zf_password;
$this->pConnect = $zf_pconnect; = $zp_real;
$this->database がここに表示されます。queryFactory と queryFactory の親クラスにデータベース メンバーの定義が見つかりませんでした。
しかし、変数データベースは確かに外部からアクセスできます。
var $link、$count_queries、$total_query_time などのデータベース変数をまとめて定義しない理由を作者に聞いてもいいですか。この方法を使用する利点と意義は何ですか
ディスカッションに返信(解決策)
function connect($zf_host, $zf_user, $zf_password, $zf_database, $zf_pconnect = 'false', $zp_real = false) { $this->database = $zf_database; $this->user = $zf_user; $this->host = $zf_host; $this->password = $zf_password; $this->pConnect = $zf_pconnect; $this->real = $zp_real;
これがphp4のプログラミングスタイルです
一般的に、クラスの属性リストで属性を明示的に宣言することは、これらを表現することです属性は存在し、使用できる必要があります
connect メソッドで受信パラメータをクラス属性に割り当てることに関しては、お勧めできません
一般的に言えば、明示的な宣言はクラス属性で行われますリストの属性は、これらの属性が存在する必要があり、使用できることを示すためのものです
connect メソッドで受信パラメータをクラス属性に割り当てることに関しては、お勧めできません
これは、メソッドの外で直接定義するのと同じです。
他の変数と一緒に定義することはできません。これにより、変数が定義されていても使用されずにメモリを占有するという状況が回避されます。これが私の意見では最も合理的な場所です。
$this->database ? $link $count_queries はすべて ??? のプロパティです。
はい、そうではありませんが、それはこのクラスの属性です
呼び出しメソッドの観点から見ると、 connect メソッドを呼び出す限り、 $zf_database パラメーターを渡す必要があります。では、クラス属性として保存することに何の意味があるのでしょうか?