web-dev-qa-db-ja.com

PHP PDO-$ dbhと$ sthは何を表していますか?

PDOの例では、頭字語$dbhおよび$sthが使用されていることがよくあります。 $dbhは「データベースハンドル」を表すと思います-正しいですか? $sthはどうですか? 「ステートメントハンドル」?

$db_connectionおよび$query(または必要に応じてその他)の代わりに上記を使用する十分な理由はありますか?

38
JDelage

$ dbh = "データベースハンドル"

$ sth = "ステートメントハンドル"

それらはより説明的であるため、私はより長い形式を好む。一般的な頭字語や略語を使用している場合でも、明示的であると、将来のメンテナに役立つことがよくあります。

以前は、ハードドライブの容量、メモリ、帯域幅が不足していた場合、その略語が意味をなしていた可能性があります。今日、(間違いなく)可読性と保守性の高いコードを作成することには、より大きな価値があります。

48
George Cummins

それらの変数名が何を意味するかに関してあなたの直観は正しかったが、それは、PDOのすべての使用がそれらの変数名を使用している、ということではありません。

変数名は、渡された関数の正しい実行にとって重要ではありません。私は人々がプロジェクト全体で変数名にわいせつな言葉を使っているのを見てきました...それは問題ではありません関数に対して。あなた自身のために、そしてあなたと一緒に働く将来の開発者のために、変数名は簡潔で明確でなければなりません。 $hndlrが「ハンドラー」の省略形であることは他の誰かには明確でない場合があるため、省略形は助けることができる場合は避けてください。この質問自体が示すように、省略形はほとんど直感的ではありません。

コーディング標準を開発または選択し、それを守ることがより重要です。変数がすべてlower_case_with_underscoresの場合は、プロジェクト外の他のコードで人々が何をしているのかに関係なく、それを守ってください。

4
Chris Baker

それらが何であるかを理解し、正しく使用することが重要です。あなたはそれらをあなたが好きなものと呼ぶのは自由です。他の領域では「ハンドル」という単語があまり見られないことを考慮して、通常はPDO変数に別の名前を付けます。

私の接続では、$ pdo_dbを呼び出します。ステートメントハンドルは、$ pdo_user_infoなど、それが表すものに基づいてわかりやすい名前を付けています。それはあなた自身の好みとあなたのコードの将来の読者が理解できるようにすることのバランスをとることです。

1
Cole