データ接続の初期化のコードです。以前に C# を学んだのですが、コンストラクターの $dbo=NULL が理解できませんでした。アドバイスをお願いします。
=NULL を使用せずに $dbo を直接使用することはできますか? 私の個人的な理解では、ステートメント $dbo=NULL は $dbo がオブジェクト型ではないことを意味します。では、なぜ以下で判断する必要があるのでしょうか? $dbo=NULL は関数に NULL 値を取り込まないのでしょうか?
protected function __construct($dbo)
{
//...
}
class DB_Connect{ protected $db; protected function __construct($dbo=NULL) { if(is_object($dbo)) { $this->db=$dbo; } else { $dsn="mysql:host=".DB_HOST."; dbname=".DB_NAME; try { $this->db=new PDO($dsn,DB_USER,DB_PASS); } catch(Exception $e) { die($e->getMessage()); } } } }
function __construct($dbo=NULL)
は $dbo を意味します。このパラメータはオプションです。初期値が NULL であるため
関数 __construct($dbo) のみの場合
次に、パラメーター $dbo を渡す必要があります
デフォルトのパラメーターであるため、
new DB_Connect()
new DB_Connect( $db);
間違いはありません
C# はオーバーロードをサポートしているため、この場合は次のように記述できます
DB_Connect::__construct($dbo) {}
DB_Connect::__construct() {}
しかし、オブジェクト指向プログラミングにおいて、オーバーロードは非常に重要な概念 (メソッド) です