質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2373閲覧

Getter/Setterについて

enigumalu

総合スコア192

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/06/19 06:53

下記のようなGetter/Setterを考えたのですが、setされる配列(receipt_var)の中に配列があるような入れ子の場合
setやgetはどういった感じになるのでしょうか
個人的には条件式を増やす形かなと考えています
$this->receipt_var['test_data'][$key] = $value;

private $receipt_var = array( 'id' => '', 'meta_cd' => '', 'test_data' => array( 'origin_data' => '', 'next_data' => '', 'lookup_data' => '', ) ); public function get($key,$default=null){ if(array_key_exists($key,$this->receipt_var)){ retrun $this->receipt_var[$key]; } return $default; } public function set($key,$value){ if(array_key_exists($key,$this->receipt_var)){ $this->receipt_var[$key] = $value; } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

列があるような入れ子の場合

setやgetはどういった感じになるのでしょうか

逆に、受け取れる型を想定しセッタでバリデートしたうえで、不適格なら
セットしないという流れでは?
ゲッタは取り出す型がきまっているのでとくに気にせずに参照して下さい。

投稿2017/06/19 07:01

yambejp

総合スコア114767

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumalu

2017/06/19 07:55

すいませんその考えでいくと今現在getを増築してreceipt_var全部を取得して渡すようにしているので微妙です。 項目数が多くなる事が見込めるのでreceipt_varで画面項目を1つにまとめていたのですがそれがあまり良くないのか、 それともsetを配列ように分割してset_receipt_varなおどもう1つ作るべきなのかなのやり方が多岐にわたってしまい何か強い方法はないかと思った次第です。
yambejp

2017/06/19 08:02

ポリシーにもよりますが、バリデートしないでなんでもかんでもセッタで無条件に データを保持することは可能ですが、それってカプセル化の意義があるのでしょうか? それであれば $this->a=$a; とだけ書いておけばすむはなしですよね? 適切な型を指定してセットして、とりだすときは型が想定されている前提で呼べばよいと思います。 ※想定外の型が投入されたときの動きは幾つか考えられます ・値を投入しない ・nullやfalseや空配列[]などデフォルト値を投入する ・無理やり(?)解釈して型を揃える
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問