- ベストアンサー
クラスの中の配列へのアクセス
お世話になります。 昨日?に似たような質問をさせていただきましたが、またよろしくお願いいたします。 以下のようなクラスがあります。 (自分で動かして確認したいのですが、今確認する環境がないので申し訳ありませんがご回答お待ちしてます) class Class1{ var $list; // 添字が数値のの配列です … function getList(){ return $this->list; } } $a = new Class1; $a->getList()->[0] ↑上のようなやり方で、Class1の$listの配列の1番目(0番目)の要素を取得したいのですが、これは可能なのでしょうか? 何卒よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
意味的にはこうでしょう。 $a->getList()[0] ------ function getList($key = null) { return ($key === null) ? $this->list : $this->list[$key]; } $a = new Class1; echo $a->getList(0);
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
単純にclass中の配列にアクセスするのであれば $a->list[0]で取り出せばいいような気がしますが。
お礼
遅くなりましたが、ご回答ありがとうございました。 私も、そのまま取り出せばいいような気がしたのですが、先輩が「クラスの変数にアクセスする場合は必ずsetやgetの関数をつくりさない」というので、関数を作ろうと思ったのです。 ご回答ありがとうございました!
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>これは可能なのでしょうか? できないと思います。
お礼
遅くなりましたが、ご回答ありがとうございます。 実際やってみたら、おっしゃるとおりできませんでした…。 勉強になりました、ありがとうございました!
- inu2
- ベストアンサー率33% (1229/3720)
function getListRow1(){ return $this->list[0]; } 目的がわからないのでなんともいえませんが、 手っ取り早く、こんな感じのメソッド作ったほうが何かと安心です んで $arow = $a->getListRow1(); とかすべし
お礼
遅くなりましたが、ご回答ありがとうございます! そうですね、メソッドを作ったほうが早いですよね。 取得する値は必ず1番目とは決まっていないので、引数に添字を入れてゲットできるようにしました。 ご回答ありがとうございました。
お礼
遅くなりましたが、ご回答ありがとうございました! おっしゃるとおりの意味でした。 ご回答いただいたとおり、新しく関数を作って値を返せるようにしました。 ご回答いただいた方法だと、ひとつの値も返せるしリスト全体も返せるので、便利ですね! 大変勉強になりました、ありがとうございました。