人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

symfony1.1での質問です。
action内で?で値を代入しています。この際にtempletes側では?のように表示しています。
正常に1が表示されます。
?$this->hatena = 1;
?<?php echo $hatena; ?>
上記を配列で持ちたいたので、??に変更しましたが未定義の変数とエラーがでます。
?$this->hatena[0] = 1;
?<?php echo $hatena[0]; ?>
単に通常のデータのやり取りを配列にするだけではエラーになります。
何か良い方法はないでしょうか?


●質問者: xv1700
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Hatena エラー データ 変数 定義
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● @akky
●32ポイント

$this->hatena[0] = 1;

$this->hatena = array(0 => 1);

にする、ではどうでしょうか? もし配列の添え字の0に大きな意味がないのであれば、

$this->hatena = array(1);

でも構いません。

参考: http://tdiary.ishinao.net/20070528.html

◎質問者からの返答

回答ありがとうございます。

参考の__SET関数を実装できそうか調査してみます。

書き足します。

配列?の場合に何か良い方法がありませんでしょうか?

if (i=0;i<3;i++)

$this->hatena = $hairetu[$i];←?


2 ● @akky
●16ポイント

ご質問の意味を取り違えているかもしれませんが、こういうことでしょうか?

for ($i=0;$i<3;$i++) {

$temp[$i] = $hairetu[$i];

}

$this->hatena = $temp;

◎質問者からの返答

回答ありがとうございます。

すいません、言葉たらずでした。

for ($i=0;$i<3;$i++)

?$this->temp[$i] = $hairetu[$i];

上記で値を格納します。

下記のようにテンプレート側で同じように表示させたいんです。

<?php for ($i=0;$i<3;$i++) : ?>

<?php ptint($temp[$i]); ?>

<?php endfor; ?>

実際にはこのロジックでは実現できません。

?$this->temp[$i]で未定義の変数エラーがでます。 $this->tempなら問題はないのですが

配列にするのが問題みたいです。それで他に方法がないかと相談してみということです。

説明が不足してるかもしれませんが、よろしくお願い致します。


3 ● @akky
●32ポイント ベストアンサー

はい、$this->temp[$i]に直接代入するをあきらめて、別の配列に代入を済ませた後で$this->tempに代入することで、配列をviewに渡すことができます。

autoloadの仕組みを使っているクラス(sfActions)ではxv1700さんが書かれた書き方の代入はエラーになるということですから、代入の仕方を変えたのが(2)の回答で、これであれば、

for ($i=0;$i<3;$i++) :

print($temp[$i]);

endfor;

でviewから表示できます。(2)の例とあわせるなら$tempではなく$hatenaとなりますが。

◎質問者からの返答

ありがとうございます。

実現できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ