PHP のお勉強

PHP は PHP5 になって、だいぶまともなオブジェクト指向言語になりました。一見すると Java と見間違えるようなこんなソースを書くことが可能です。

ReaderWriter.php

<?php
/**
 * Read interface
 */
interface Readable {
	function read($filename);
}

/**
 * Write interface
 */
interface Writable {
	function write($filename, $data);
}

/**
 * Media Base class
 */
class Media {
	private $name;

	public function ready() {
		return true;
	}
}

/**
 * Test Sub class
 */
class ReaderWriter extends Media implements Readable, Writable {
	public function ReaderWriter($name) {
		$this->name = $name;
	}

	public function read($filename) {
		echo "reading ... $filename<br>\n";
		return "fugafuga";
	}

	public function write($filename, $data) {
		echo "writing ... $filename<br>\n";
	}

	public function getName() {
		return $this->name;
	}
}

test.php

<html>
<body>
<?php
require_once('ReaderWriter.php');

$rw = new ReaderWriter("something");
echo "name is " . $rw->getName() . "<br>\n";
if ($rw->ready()) {
	$data = $rw->read("foo.txt");
	echo "data = $data<br>\n";
	$rw->write("bar.txt", $data);
}
?>
</body>
</html>

実行すると、こんな表示になるはずです。

name is something
reading ... foo.txt
data = fugafuga
writing ... bar.txt