子クラスにコンストラクタ・メソッドがなければ、親クラスのコンストラクタ・メソッドを、自動的に呼び出す。
子クラスにコンストラクタ・メソッドがあるときは、親クラスのコンストラクタ・メソッドを、自動的には呼び出さない。親クラスのコンストラクタ・メソッドを呼び出すには、子クラスのコンストラクタの中で、parent::__construct();
とする。
書式
子クラスにコンストラクタ・メソッドがない場合
class クラスA // クラスを定義
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
「クラスA」のクラスのコンストラクタ・メソッドを呼び出す。
子クラスにコンストラクタ・メソッドがある場合
class クラスA // クラスを定義
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
「クラスB」のクラスのコンストラクタ・メソッドを呼び出す。
parent::__construct();
class クラスA // クラスを定義
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
function __construct() {
parent::__construct();
// コンストラクタ・メソッド内の処理文;
}
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
{
function __construct() {
// コンストラクタ・メソッド内の処理文;
}
}
class クラスB extends クラスA // クラスAを継承しクラスBを定義
{
function __construct() {
parent::__construct();
// コンストラクタ・メソッド内の処理文;
}
}
$オブジェクト変数名 = new クラスB(); // 「クラスB」のクラスのインスタンスを作成
「クラスA」と「クラスB」のクラスのコンストラクタ・メソッドを呼び出す。
サンプル
子クラスにコンストラクタ・メソッドがない場合
<?php
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
}
$var_class = new sampleClassB();
?>
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
}
$var_class = new sampleClassB();
?>
↓↓↓出力結果↓↓↓
親クラスのコンストラクタ・メソッド
子クラスにコンストラクタ・メソッドがある場合
<?php
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
function __construct() {
echo '子クラスのコンストラクタ・メソッド<br />';
}
}
$var_class = new sampleClassB();
?>
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
function __construct() {
echo '子クラスのコンストラクタ・メソッド<br />';
}
}
$var_class = new sampleClassB();
?>
↓↓↓出力結果↓↓↓
子クラスのコンストラクタ・メソッド
parent::__construct();
<?php
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
function __construct() {
parent::__construct();
echo '子クラスのコンストラクタ・メソッド<br />';
}
}
$var_class = new sampleClassB();
?>
class sampleClassA
{
function __construct() {
echo '親クラスのコンストラクタ・メソッド<br />';
}
}
class sampleClassB extends sampleClassA
{
function __construct() {
parent::__construct();
echo '子クラスのコンストラクタ・メソッド<br />';
}
}
$var_class = new sampleClassB();
?>
↓↓↓出力結果↓↓↓
親クラスのコンストラクタ・メソッド
子クラスのコンストラクタ・メソッド
子クラスのコンストラクタ・メソッド