- 締切済み
別ファイルに配列を渡して、別ファイルのクラスを実行
index.phpから別ファイルのclass.phpに配列を渡して、 クラスを実行したいと考えています。 //----------------------------------- //-- index.php --- <?php class hiragana { public $a_ka_sa; function init() { $this->a_ka_sa = array(); } } $j_hiragana = new hiragana(); $val[0] = array('a'=>'あ' , 'i'=>'い' , 'u'=>'う' , 'e'=>'え' , 'o'=>'お'); $val[1] = array('ka'=>'か' , 'ki'=>'き' , 'ku'=>'く' , 'ke'=>'け' , 'ko'=>'こ'); $val[2] = array('sa'=>'さ' , 'si'=>'し' , 'su'=>'す' , 'se'=>'せ' , 'so'=>'そ'); $j_hiragana->a_ka_sa[0] = (object) $val[0]; $j_hiragana->a_ka_sa[1] = (object) $val[1]; $j_hiragana->a_ka_sa[2] = (object) $val[2]; var_dump($j_hiragana); //----------------------------------- このようになっているプログラムを //----------------------------------- //-- index.php --- <?php $val[0] = array('a'=>'あ' , 'i'=>'い' , 'u'=>'う' , 'e'=>'え' , 'o'=>'お'); $val[1] = array('ka'=>'か' , 'ki'=>'き' , 'ku'=>'く' , 'ke'=>'け' , 'ko'=>'こ'); $val[2] = array('sa'=>'さ' , 'si'=>'し' , 'su'=>'す' , 'se'=>'せ' , 'so'=>'そ'); //----------------------------------- 配列の部分だけindex.phpに残して //----------------------------------- //-- class.php --- <?php class hiragana { public $a_ka_sa; function init() { $this->a_ka_sa = array(); } } $j_hiragana = new hiragana(); //-------------- // $val[0] = array('a'=>'あ' , 'i'=>'い' , 'u'=>'う' , 'e'=>'え' , 'o'=>'お'); // $val[1] = array('ka'=>'か' , 'ki'=>'き' , 'ku'=>'く' , 'ke'=>'け' , 'ko'=>'こ'); // $val[2] = array('sa'=>'さ' , 'si'=>'し' , 'su'=>'す' , 'se'=>'せ' , 'so'=>'そ'); //-------------- $j_hiragana->a_ka_sa[0] = (object) $val[0]; $j_hiragana->a_ka_sa[1] = (object) $val[1]; $j_hiragana->a_ka_sa[2] = (object) $val[2]; //----------------------------------- class.phpに移して、 index.phpを開くとclass.phpのクラス?に配列を渡しクラス?を実行する プログラムを作りたいと考えていますが、 うまく配列を渡してクラス?を実行できません。 どのようにすればよいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
イマイチ何をしたいのか分かりませんが… オブジェクトや配列を別スクリプトにGETやPOSTで送信して復元したいときに役立つのはserialize/unserializeです。 ただこれはNULLバイトを含む可能性があるのでBASE64エンコードを忘れずに。 【渡す側】 $str = base64_encode(serialize($data)); //$strを何らかの方法で送信(file_get_contentsが一番簡単) 【受け取る側】 //$strに受け取った値を代入しておく $data = unserialize(base64_decode($str)); file_get_contentsでPOSTする方法はこちら http://d.hatena.ne.jp/ryster/20070907/1189148449 書いたあとに気付いたんですけど、この件に関してはわざわざこんなことしなくても、 index.phpの末尾に require('class.php'); を書けばいいだけの気がする… requireしたスクリプトに関しては、既に存在している変数などは全て共有されます。(同じ名前空間扱い)
お礼
解答ありがとうございます。 ちょっと 話がずれているような気がします。 ネットで検索しているとそういうなのが出てきますが どうも違うような気がします。 //--------------------- require('class.php'); //--------------------- して 基礎的なソースで出来ると思います。 オブジェクト指向初心者なため 再度 基礎に戻って 考えたいと思います。 またよろしくお願いします。