PHP でも Java などの言語同様メソッドチェーンを使った処理を書くことができます。
サンプルでは文字「<Hello, World!>」という文字に対して置換と加工を行ったものを出力しています。
<?php
$str = new MyString('<Hello, World!>');
echo $str->replace('World', 'PHP')->toUpperCase()->h();
class MyString
{
private $str;
function __construct($value){
$this->str = $value;
}
function __toString(){
return (string)$this->str;
}
function replace($old, $new){
$this->str = str_replace($old, $new, $this->str);
return $this;
}
function toUpperCase(){
$this->str = strtoupper($this->str);
return $this;
}
function h($encoding='UTF-8'){
$this->str = htmlspecialchars($this->str, ENT_QUOTES, $encoding);
return $this;
}
}
実行結果
<HELLO, PHP!>
メソッドの返り値を「return $this;」とすることで処理後のオブジェクトを次のメソッドに渡しています。 行っている内容は下と同じですが順序が明確になりすっきりと書くことができます。
echo htmlspecialchars(strtoupper(str_replace('World', 'PHP', '<Hello, World!>')),
ENT_QUOTES, 'UTF-8');
Similar Posts:
- [PHP]ヒアドキュメント内で関数を使う
- [PHP]htmlspecialchars()を使うと文字が消える?
- [PHP]ついやってしまいがちな汚いソース10種
- [PHP]PHPプログラミング学習者が陥りやすい10の失敗
- [PHP]クラスメソッドをキャメルケース、スネークケースのどちらでも呼び出せるようにする
- [PHP]htmlspecialchars()を行った上でprintf()する
- [PHP]ページごとの訪問者数を調べるアクセスカウンター
- [PHP]クラスのプライベートなプロパティやメソッドに外部からアクセスする