teratail header banner
teratail header banner
質問するログイン新規登録
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

Q&A

解決済

1回答

1613閲覧

PHP classのコンストラクタ

sbthrk

総合スコア17

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

0グッド

0クリップ

投稿2015/01/31 07:22

0

0

コンストラクタで初期化……

class Test{ private $test_no; function __construct(){ $this->test_no = 8; } function xxxxx(){ ~~~~~; } }

ではなく、変数に値設定……

class Test{ private $test_no = 8; function xxxxx(){ ~~~~~; } }

では何か大きな違いが出てくるのでしょうか?
時と場合による?メリットデメリットの問題?
具体例があるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

試すのが一番ですね。

lang

1<?php 2class Test1 { 3 private $test_no; 4 public function __construct() { 5 $this->test_no = 8; 6 } 7} 8class Test2 { 9 private $test_no = 8; 10 public function __construct() { 11 } 12} 13class Test3 { 14 private $test_no = 8; 15} 16 17 18$start = microtime(); 19for ( $i = 0; $i < 10000; $i++ ) { 20 $test = new Test1(); 21} 22$end = microtime(); 23echo $end-$start,"\n"; 24 25$start = microtime(); 26for ( $i = 0; $i < 10000; $i++ ) { 27 $test = new Test2(); 28} 29$end = microtime(); 30echo $end-$start,"\n"; 31 32$start = microtime(); 33for ( $i = 0; $i < 10000; $i++ ) { 34 $test = new Test3(); 35} 36$end = microtime(); 37echo $end-$start,"\n"; 38?>

私の環境ではこうでした。

0.031074
0.02288
0.010054
基本はシンプルな方が処理効率が高くなります。
ただ、引数などで設定する値が決まる場合はコンストラクタが必要ですね。

投稿2015/02/05 18:20

編集2015/02/06 00:19
shinosan

総合スコア209

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問