【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

22
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 1 PHP 1 3,000 Web

description

PHPプログラミング学習用の資料です。 PHPによるクラスの定義やオブジェクトの生成・アクセサメソッドや命名について言及しています。

Transcript of 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

Page 1: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 1

PHP

1 3,000 Web

Page 2: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 2

• ( )

1.

2.

3.

4. PHP

Page 3: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 3

Page 4: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 4

Page 5: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 5

関数

関数

関数 データ

関数

データ

データ

関数

クラスA クラスB

関数

関数

データ データ

データ 関数

関数

関数

DB処理 メール処理

役割分担が明確

Page 6: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 6

• 1960 Simula

• ( )

objectA objectB

objectC

objectD

Page 7: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 7

• class

PHP class

• (class) (function)

class

(class)

Page 8: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 8

Page 9: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 9

• $this

• public

<?php class Person // 人を表すクラス { public $name = ''; // 名前を記憶するプロパティ public function sayHello() // あいさつするメソッド { echo 'こんにちは、' . $this->name . 'です。'; } }

Person.php

Page 10: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 10

new

– $object = new ();

$object-> = 'foo'

echo $object->

$object-> ()

<?php require_once('Person.php'); $taro = new Person(); // newでオブジェクトを作成します $taro->name = 'アシアル太郎'; // name属性の値を変更します $taro->sayHello(); // 「こんにちは、アシアル太郎です。」と出力されます

index.php

Page 11: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 11

Page 12: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 12

• public private protected 3

public

• $taro = new Person();

• $taro->name = ' '; // public OK

private

• $taro = new Person();

• $taro->name = ' '; // private

$taro->setName(' '); // public OK

protected

• private

Page 13: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 13

private

Person.php

• $name private

• $name setName()

<?php class Person { private $name = ''; public function setName($name) { $this->name = trim($name); } public function sayHello() { echo 'こんにちは、' . $this->name . 'です。'; } }

Person.php

Page 14: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 14

index.php

<?php require_once('Person.php'); $taro = new Person(); $taro->setName('アシアル太郎'); $taro->sayHello();

index.php

Page 15: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 15

Page 16: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 16

• private

• private

private

public

private

Page 17: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 17

• __construct

construct

• __destruct()

Page 18: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 18

Person.php

<?php class Person // アクセス修飾子の例 { private $name = ''; public function __construct($name) { $this->setName($name); } public function __destruct() { echo 'さようなら'; } public function setName($name) { $this->name = trim($name); } public function sayHello() { // あいさつするメソッド (publicなのでどこからでも呼べる) echo 'こんにちは、' . $this->name . 'です。'; } }

Person.php

Page 19: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 19

index.php

<?php require_once('Person.php'); $taro = new Person('アシアル太郎'); $hanako = new Person('アシアル花子'); $taro->sayHello(); $hanako->sayHello();

index.php

Page 20: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 20

• User

• Item

• Mail

• : read -> CsvFileReader

• : control -> OrderController

• : manage -> ConnectionManager

Page 21: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 21

• save()

• getParameter($name)

• findByUserName($userName)

boolean (true/false) is has

• isAvailable()

• isDisabled()

• hasParameter($name)

• Item isAvailable()

• Database connect()

• User isLoggedIn()

Page 22: 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 22

SimpleXML

SimpleXML

• XML

• RSS

• http://php.net/manual/ja/book.simplexml.php

RSS

• dump

<?php $rss = simplexml_load_file('http://blog.asial.co.jp/rss/rss2.0.php'); // var_dump($rss); // var_dump(get_class_methods($rss)); foreach ($rss->channel->item as $item) { echo htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8')."<br>¥n"; // var_dump($item->guid->attributes()); }