壁画

こんにちは〜

PHP基礎まとめメモ part2(忘れたとき用)

 

momomoromo.hatenablog.com

 の続き

クラスはclass クラス名{}で定義

インスタンスは new クラス名()で生成

<?php

class Test{

}

$test1 = new Test();

?> 

クラスのプロパティはpublic $プロパティ名などで定義,初期値も設定可能

publicはどのファイルからもアクセス可

protectedはクラス内とそのサブクラス限定

privateはクラス内限定

->を使ってインスタンスのプロパティにアクセスする($は不要)

class Test{

  public $number = 1;

  private $name;

$test = new Test();

$test->number = 3;

echo $test->number;

//出力:3

メソッドもpublic function メソッド名(引数){}などで定義可能

メソッドでインスタンスのプロパティにアクセスするには$thisをつかう

->でインスタンスのメソッドが呼べる

class Test{

  private $name;

  public function setName($inputName){

    $this->name = $inputName;

  }

  public function getName(){

    return $this->name;

  }

$test = new Test();

$test->setName('なまえ');

echo $test->getName();

//出力:なまえ

コンストラクタでインスタンス作成時にメソッドを実行する

function __construct(){}で定義

 class Test{

  private $name;

  public function __construct($inputName){

    $this->name = $inputName;

  }

}

$test = new Test('たけし');

echo $test->name;

//出力:たけし

クラスプロパティについて

staticを入れることで定義できる

アクセスするにはクラス内ではself::$プロパティ名

クラス外ではクラス名::$プロパティ名

class Test{

  public static $number = 100;

  public function test(){

    self::$number += 20;

  }

}

$test = new Test();

$test->test();

echo Test::$number;

//出力:120

クラスメソッドも同様に定義できる

class Test{

  public static $number = 100;

  public function test(){

    self::$number += 20;

  }

  public static function print(){

    return self::$number;

  }

}

$test = new Test();

$test->test();

echo Test::print();

//出力:120

extendsでクラスの継承ができる

同じメソッドを書いてオーバーライド可能

parentで親クラスのメソッドが呼び出せる

コンストラクタを上書きした例

class Test{

  public $number;

  public function __construct($number){

    $this->number = $number;

  }

}

class Child extends Test{

  public $name;

  public function __construct($number,$name){

    parent::__construct($number);

    $this->name = $name;

  }

}

$test = new Child(2500,'はてなマン');

echo $test->name;

//出力:はてなマン

echo $test->number;

//出力:2500

instanceofでそのクラスかの確認が可能

先ほどの例で試す

class Test{

  public $number;

  public function __construct($number){

    $this->number = $number;

  }

}

class Child extends Test{

  public $name;

  public function __construct($number,$name){

    parent::__construct($number);

    $this->name = $name;

  }

}

$test = new Child(100,'ああ');

echo $test instanceof Test;

//出力:false

echo $test instanceof Child;

//出力:ture

HTMLの中にPHPのfor文やif文を入れる

<?php if(条件式): >と<?php endif ?>を使う

endforやendforeachも同様,else:もある

<?php for($i=1;$<101;$i++):?>

  <p><?php echo $i ?></p>

<?php endfor ?> 

//出力:1

//出力:2

//以下省略

PHPファイルの読み込みはrequire_once('URL')で行う

<?php

  require_once('test.php'); 

  //test.phpのクラスが使える

?>

クエリ情報は$_GETで受け取れる

URLの末尾?に?キー名=値として先のページに情報を送ることができる

<a href='test.php?page=hatena'>てすとリンク</a> 

としたとき

echo $_GET['page'];

//出力:hatena

 

おわり^.^