[PHP-users 32087] クラスメソッド内で実行した処理結果について

J J swjone @ hotmail.com
2007年 5月 9日 (水) 22:51:59 JST


はじめまして、Junと申します。
いつも参考にさせていただいております。
オブジェクト指向プログラミング初学者です。(先ずは、PHP4を使用してですが。)

クラスメソッド内で実行した処理結果をどの様な方法で返すのが望ましいかと悩んで
おります。
お分かりになりにくい質問かもしれませんが、ご意見・考え方などアドバイスいただ
ければ幸いです。
宜しくお願いいたします。

以下に、処理結果の返し方の例を挙げます。

方法1)通常の関数と同じような方法で直接結果を返す。
例)
class Data
{
    function getData()
    {
        //データ処理
        //「XXXXX」は、何らかのデータとします。
        return XXXXX;
    }
}

$obj_data =& new Data();
$val = $obj_data->getData();

方法2)同クラス内の結果格納用のメンバ変数などに一旦格納し、そのメンバ変数に
アクセッサ
メソッドを介して結果を返す。(PHP4ですが。)
例)
class Data
{
    var $_data;
    
    function _setData()
    {
        //データ処理
        //「XXXXX」は、何らかのデータとします。
        $this->_data = XXXXX;
    }
    function getData()
    {
        $this->_setData();
        return $this->_data;
    }
}

$obj_data =& new Data();
$val = $obj->getData();

方法3)Resultオブジェクトなどを引数などで渡して、そのResultオブジェクトに結
果を返す。
例)
class Data
{
    var $_result = null;

    function Data(&$obj_result)
    {
        $this->_result = $obj_result;
    }
    function getData()
    {
        //データ処理
        //「XXXXX」は、何らかのデータとします。
        $this->_result->add('data', XXXXX);
    }
}

class Result
{
    var $_data = array();

    function add($key, $data){}
    //ロジックは省略します。

    function get($key){}
    //ロジックは省略します。
}

$obj_result =& new Result();
$obj_data   =& new Data($obj_result);
$obj_data->getData();
$val = $obj_result->get('data');

*動作環境
OS:Windows XP
PHP:4.4.4
Server:Apache1.3.33

_________________________________________________________________
OneCareならウィルス対策も、メンテナンスも、バックアップもオールインワン 
http://onecare.live.jp 



PHP-users メーリングリストの案内