変数を介してクラス内のコンストラクターに値を渡す方法
Jun 23, 2016 pm 02:17 PM コンストラクターで複数の値を渡す必要があり、毎回渡される値の数が固定されない可能性があるため、コードは次のようになります。渡さない場合、スイートポテトコンストラクターのデフォルト値が設定されます。以下では、配列を implode で文字列に分割し、「,」で接続しています。結果は、なぜ $host 変数に転送されるのでしょうか? :192.168.1.1,1212
port:80
また、つまり、ポストは $host に渡されますが、ポートはデフォルトの
class test{ public function __construct($host="127.0.0.1",$port="80") { echo 'host:'.$host."<br>"; echo 'port:'.$port; }}$data['host']='192.168.1.1';$data['port']='1212';$str=implode(',',$data);$obj=new test($str);
ログイン後にコピー
を使用したままです 結果:
host:192.168.1.1,1212port:80
ログイン後にコピー
ディスカッションに返信 (解決策) )
低レベルのエラー
$str はただの変数ですが、どうすればプログラムが自動的に 2 つとして理解できます
class test{ public function __construct($host="127.0.0.1",$port="80") { echo 'host:'.$host."<br>"; echo 'port:'.$port; } }$data['host']='192.168.1.1';$data['port']='1212';$ref = new ReflectionClass('test');$obj = $ref->newInstanceArgs($data);
ログイン後にコピー
port:1212
<?phpclass test{ public static function new_object($data = array()) { switch(count($data)) { case 2: return new self($data['host'], $data['port']); case 1: return new self($data['host']); default: return new self(); } } public function __construct($host="127.0.0.1",$port="80") { echo 'host:'.$host."<br>"; echo 'port:'.$port; } } $data['host']='192.168.1.1';$data['port']='1212';//$str=implode(',',$data);//$obj=new test($str);$obj = test::new_object($data);
ログイン後にコピー
host:192.168.1.1
port:1212
$ref = new ReflectionClass('test'); と記述するには、クラスのデフォルト 80 を使用する必要があります。
$ obj = $ref->newInstanceArgs($data);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7287
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



LaravelのバックエンドでReactアプリを構築する:パート2、React
