• ベストアンサー

クラスの中の配列へのアクセス

お世話になります。 昨日?に似たような質問をさせていただきましたが、またよろしくお願いいたします。 以下のようなクラスがあります。 (自分で動かして確認したいのですが、今確認する環境がないので申し訳ありませんがご回答お待ちしてます) class Class1{   var $list; // 添字が数値のの配列です   …   function getList(){     return $this->list;   } } $a = new Class1; $a->getList()->[0] ↑上のようなやり方で、Class1の$listの配列の1番目(0番目)の要素を取得したいのですが、これは可能なのでしょうか? 何卒よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.3

意味的にはこうでしょう。 $a->getList()[0] ------ function getList($key = null) {  return ($key === null) ? $this->list : $this->list[$key]; } $a = new Class1; echo $a->getList(0);

myaa_myu
質問者

お礼

遅くなりましたが、ご回答ありがとうございました! おっしゃるとおりの意味でした。 ご回答いただいたとおり、新しく関数を作って値を返せるようにしました。 ご回答いただいた方法だと、ひとつの値も返せるしリスト全体も返せるので、便利ですね! 大変勉強になりました、ありがとうございました。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

単純にclass中の配列にアクセスするのであれば $a->list[0]で取り出せばいいような気がしますが。

myaa_myu
質問者

お礼

遅くなりましたが、ご回答ありがとうございました。 私も、そのまま取り出せばいいような気がしたのですが、先輩が「クラスの変数にアクセスする場合は必ずsetやgetの関数をつくりさない」というので、関数を作ろうと思ったのです。 ご回答ありがとうございました!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>これは可能なのでしょうか? できないと思います。

myaa_myu
質問者

お礼

遅くなりましたが、ご回答ありがとうございます。 実際やってみたら、おっしゃるとおりできませんでした…。 勉強になりました、ありがとうございました!

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

  function getListRow1(){     return $this->list[0];   } 目的がわからないのでなんともいえませんが、 手っ取り早く、こんな感じのメソッド作ったほうが何かと安心です んで $arow = $a->getListRow1(); とかすべし

myaa_myu
質問者

お礼

遅くなりましたが、ご回答ありがとうございます! そうですね、メソッドを作ったほうが早いですよね。 取得する値は必ず1番目とは決まっていないので、引数に添字を入れてゲットできるようにしました。 ご回答ありがとうございました。