ホームページ > バックエンド開発 > PHPチュートリアル > 関数パラメータ NULL の問題

関数パラメータ NULL の問題

WBOY
リリース: 2016-06-23 13:55:46
オリジナル
1425 人が閲覧しました

データ接続の初期化のコードです。以前に 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() {}

あなたはそう言います。 C# とは大きく異なります。C# では、この種のパラメーターを渡す必要があります。私の頭の中にはその概念がありません。 。 。だから全然理解できないんです。

しかし、オブジェクト指向プログラミングにおいて、オーバーロードは非常に重要な概念 (メソッド) です


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート