トップページphp
1001コメント298KB

【PHP】下らねぇ質問はID出して書き込みやがれ 83

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/06(月) 04:14:58ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0497nobodyさん2009/04/16(木) 14:56:42ID:???
>>496
うん
俺もJavaやりはじめてsetXXXとgetXXX使い始めたけど(スクリプトの改造がメインで)
その言い方聞いたのは今日がはじめてだったわ
0498nobodyさん2009/04/16(木) 15:59:40ID:???
下駄と雪駄か
0499nobodyさん2009/04/16(木) 20:09:37ID:jPGJyauu
テンプレート書いてるんですが、
良くあるリンクメニューで

ページaaaの時
<li><strong>あああ</strong></li>
<li><a href="bbb">いいい</a></li>
<li><a href="ccc">ううう</a></li>

ページbbbの時
<li><a href="aaa">A</a></li>
<li><strong>いいい</strong></li>
<li><a href="ccc">ううう</a></li>

とりあえずこんな感じ
<li><?php if ($page == 'aaa') echo '<strong>あああ</strong>' else echo '<a href="aaa">あああ</a>'; ?></li>
<li><?php if ($page == 'bbb') echo '<strong>いいい</strong>' else echo <a href="bbb">いいい</a>'; ?></li>
<li><?php if ($page == 'ccc') echo '<strong>ううう</strong>'else echo '<a href="ccc">ううう</a>'; ?></li>

あああ、いいい、やhtmlは変わることがあるので、
テンプレートでデザイナが変更できるようにしたい。

こういうのは皆さんどうやって書いてますか?
0500nobodyさん2009/04/16(木) 21:00:43ID:???
foreachで回してifで分岐
0501nobodyさん2009/04/16(木) 21:14:34ID:???
$SITEURL = 'http://'.$_SERVER['SERVER_NAME'];
$strong = ' class="strong"';//class名
$page = $_GET['page'];//など
$page_link = $_GET['mode'];//など

$A = 'A';
$a = 'あああ';
$b = 'ううう';
$c = 'いいい';

$link = <<<_EOD_
<a href="{$SITEURL}/{$page_link}.html" title="{$page}.htmlへ移動">
_EOD_;

$link2 = <<<_EOD_
</a>
_EOD_;

つづく
0502nobodyさん2009/04/16(木) 21:15:26ID:???
switch($page){

case aaa:
$aa = $strong;
$bb = $link;
$cc = $link;
$aaa = '';
$bbb = $link2
$ccc = $link2
break;

case aaa:
$aa = $link;
$bb = $strong;
$cc = $link;
$aaa = $link2;
$bbb = '';
$ccc = $link2;
break;

}

echo <<<_EOD_
<ul>
<li{$aa}>{$a}{$aaa}</li>
<li{$bb}>{$b}{$bbb}</li>
<li{$cc}>{$c}{$ccc}</li>
</ul>
_EOD_;

うちは趣味でしかしてないのでこの程度で十分
0503nobodyさん2009/04/16(木) 21:17:08ID:???
きったねぇコードだな
んでメニューが9つになったら3倍書くわけですか
0504nobodyさん2009/04/16(木) 21:19:24ID:krmlLaYN
配列作るときにarray()とか書かなくて済むようになるのっていつ?

拡張でできたっけ?
0505nobodyさん2009/04/16(木) 21:20:17ID:???
その程度の手間を惜しんでないでロジックを最適化しろ
0506nobodyさん2009/04/16(木) 21:57:06ID:XUzGmp6d
>>480
その方法で半角スペースの問題は解決しました。
しかし今度は長いファイル名のときにファイル名の先頭が文字化けに・・・orz
IEが糞なのを実感した。
0507nobodyさん2009/04/16(木) 22:08:00ID:???
>>504
[a, b, c] で書けるようなパッチが上がったようだが、本家への取り込みは却下されたらしい。
0508nobodyさん2009/04/16(木) 22:37:59ID:???
うざくなるだけだからいらない
0509nobodyさん2009/04/16(木) 23:11:38ID:???
この話題だな
http://wiki.php.net/rfc/shortsyntaxforarrays
却下する理由がイミフだが、作ってる奴が反対するならしょうがねえ

>>506
ホストがWindowsかつ地域設定が日本の場合は
rawurlencodeせずにSJIS-winで出力することで文字数が稼げる
この辺は要求に合わせて選んでくれ
0510nobodyさん2009/04/17(金) 01:58:54ID:???
ただでさえ言語汚いのに変な記号増やすべきじゃないってことだろ
やるならせめてJava,C#系にあわせて {"a", "b", "c"} じゃないか?
0511nobodyさん2009/04/17(金) 02:51:11ID:???
JavaScriptは[]だろ
ちなみに{}はJavaScriptでは連想配列
だいたいJava C#で配列なんて使わないし
どうせならPHPがコレクション実装すればいい

ってここでほえても仕方ないんだが
0512nobodyさん2009/04/17(金) 10:09:01ID:???
どうでもいいけどいつの間にかwindowsでcronできるようになったんだね
0513nobodyさん2009/04/17(金) 10:12:53ID:???
はい?
0514nobodyさん2009/04/17(金) 11:06:06ID:???
>>513
知らないならググレバ?
0515nobodyさん2009/04/17(金) 11:09:10ID:???
今更何言ってんの?
0516nobodyさん2009/04/17(金) 11:21:27ID:???
>>512
かなり昔からタスクスケジューラという名前で存在してるんだが・・・。
0517nobodyさん2009/04/17(金) 14:05:09ID:???
>>516
ごめんそれはcronじゃなくてタスクスケジューラだ
cron知らないの?バカなの?
0518nobodyさん2009/04/17(金) 14:12:53ID:???
>>517
クロノだよ。
知らないの?馬鹿なの?
0519nobodyさん2009/04/17(金) 14:26:53ID:rayC69Kt
変数について教えてほしいのだが、
例えば、パラメータ$_POST['hoge']やセッション変数$_SESSION['hoge']
というのが、特に代入なしに
$hoge
で取れてしまい、そういうものだと思っていたら、あるとき、
それでは取得できなくなったりし、この辺の仕様ってどうなっている?

結局怪しいので、全部きちんと$_POSTなどで取るようにしたが。
0520nobodyさん2009/04/17(金) 14:27:49ID:???
register_globals
0521nobodyさん2009/04/17(金) 14:28:33ID:???
>>519
それ昔の仕様
今でもiniで設定できたはずだけどやめたほうがいい

$_POST、$_GET、$_SESSIONで取得するのが一般的
05225192009/04/17(金) 15:07:59ID:???
>>520, 521
サンキュー。
そういうことか。
0523nobodyさん2009/04/17(金) 15:09:52ID:???
昔の仕様すごいよなあ。querystringから内部の変数書き換えまくり
0524nobodyさん2009/04/17(金) 17:12:12ID:uEgfagTh
PHPとMySQLを使うシステムで、公開用サイトの全ページに

1:MySQL上のconfigテーブルを読み込む
2:configに設定してある内容によって処理を分岐
3:ログを書き込む

という処理が発生します。
1アクセスで何回かのSQLを実行することになるのですが、
サイトのアクセスが増えると、処理の負荷などで後々問題になるでしょうか?
現時点では問題ないのですが、先の事を考える時になります。
0525nobodyさん2009/04/17(金) 17:15:52ID:???
>>524
いちどキャッシュとして書き出しておけばいいんじゃない?
0526nobodyさん2009/04/17(金) 17:25:30ID:???
>>524
configテーブルが満たす仕様による。
高度な検索性を必要とするconfigテーブルでないのなら、そんな設計はやめた方がいい。
0527nobodyさん2009/04/17(金) 19:34:25ID:hTOqIwMv
HPでヘッダやフッター、ナビボタン、背景、レイアウトは同じで 
例えば写真だけ違うの見せたい場合ってPHPが役立つのですか?
0528nobodyさん2009/04/17(金) 19:35:39ID:???
HTMLコピペして画像のファイル名だけ編集してUPすればよくね
0529nobodyさん2009/04/17(金) 19:36:03ID:???
すきなの選べ

・DWのテンプレ機能
・PHP
・Java
・Perl
・Ruby
・JavaScript
0530nobodyさん2009/04/17(金) 19:59:08ID:???
おいおい、SSIが入ってないぞ
0531nobodyさん2009/04/17(金) 21:19:55ID:???
3.0になったPythonもお忘れなく☆
0532nobodyさん2009/04/17(金) 21:23:35ID:???
ちょっとちょっとFlashが入ってないよ
05335242009/04/17(金) 21:58:50ID:uEgfagTh
>>525
それも考えたのですが、ファイルに書き出すなら
データベースの利便性が失われる気がして悩んでます。。
セキュリティとかも気になるし。

>>526
高度な検索は必要ありません。テーブルからconfigファイルを読み込み
配列に入れて、各条件(ログインなど)の時に参照すると言った仕様です。
0534nobodyさん2009/04/17(金) 22:04:21ID:3OZ9UJNj
if (!$fp = fopen('...', "r")) { ... }の
(!($fpではなくて
!$fpみたいなコーディングスタイル使ってる?
0535nobodyさん2009/04/17(金) 22:05:41ID:???
うん
0536nobodyさん2009/04/17(金) 22:08:53ID:???
>533
iniとかXMLとかJSONとか、なんでもいいから好きなファイルフォーマットで書き出しておけ。
もしくは単純にPHPコードに配列として書き込む(当然設定だけ別ファイルに隔離)のもアリ。
(本当はあまりよくないのだが、APCなどのキャッシュが効くようになるという大きなメリットがある)

とりあえず、「データベースの利便性」ってなんだ?
上記のような手段ではなく、わざわざ遅く難しいDBに情報を格納している理由は?
0537nobodyさん2009/04/17(金) 22:16:19ID:???
>>533
データベースの接続に必要な情報はファイルの方に書き込まないといけないじゃん
その情報を知ってしまえば、わざわざデータベースに突っ込んでも無意味じゃん

それに設定項目が分散しちゃうと、後でめんどくさくなるだけじゃん
0538nobodyさん2009/04/18(土) 01:11:57ID:???
>>533
そもそも>>524のキャッシュとして書き出しって意味がわからんな。
一度取ってきたらメモリにキャッシュすればいい。
クラス変数にいれるか、インスタンス変数にいれてsingletonにする。
0539nobodyさん2009/04/18(土) 01:39:24ID:???
クッキーって期限がありますよね
ということは、切れたとき使えないときの為のコードも要りますよね?
クライアントが便利になるよという機能であって何かの代わりになるものではないですよね?
例えば、購入履歴とかはログを残しといてアカウントで参照できるようじゃないと
クッキーが有効であっても期限がありますから
ちがうん?

0540nobodyさん2009/04/18(土) 01:58:11ID:???
あってる。
クッキーは記録を残すための物じゃない。
ログイン状態の保持(セッションキーの保持)専用だと考えていいよ。PHPでは他の用途にはあんまり使わない。

消えたら困るものはクッキーに保存してはいけない。
何かを保存するとしても、掲示板の名前欄みたいな、消えてもいいものだけにしとけ。
0541nobodyさん2009/04/18(土) 02:14:41ID:???
すっきりしますた。ありがたや。
0542nobodyさん2009/04/18(土) 02:14:48ID:dAOHt7Vp
厳密にはphp関連の質問にはならないかもしれないんですが

index.php?i=1や
index.php?i=2といった変数付記でのページURLを、

home.html
news.html
というURLでも呼び出すことができるようにするhtaccess(か何か)の
記述方法があったはずなのですが思い出せません。

home.htmlやnews.htmlはファイルが実際存在するのではなくて、
URLっぽくする(というか、覚えてもらいやすくする)ための便宜ファイル名です。

例えば、ユーザー側――ブラウザ上のURLは「http://www.hoge.com/news.html」となりますが、
実際に呼び出しているファイルはサーバー側ではindex.php?page=1である、といった感じです。

断片的な情報しかなく稚拙な説明で申し訳ございませんが、どうかご教授下さい。
0543nobodyさん2009/04/18(土) 02:17:52ID:???
http://pc11.2ch.net/test/read.cgi/php/1023791370/l50
0544nobodyさん2009/04/18(土) 04:57:19ID:???
>>542
mod_rewrite
05455242009/04/18(土) 11:10:50ID:RfYbPRbr
返信が遅れてすみません。

>>536
DBを使ってない場合は、dat形式にしてファイルに書き出していました。
昔の、CGIの掲示板などを作る時のやり方です。

>とりあえず、「データベースの利便性」ってなんだ?
セットアップの仕組みを作っているのですが、DBで管理する方が
編集しやすいのです。ファイル編集でも出来ますが、手間がかかるし。
それに、有名なオープンソースシステムをみても、だいたいconfigは
DB上で管理しているので、同じようにしたいと思っています。

>>537
データベースに接続する情報はもちろんファイルに書きます。config.phpなどに。
そうじゃなくて、サイト毎の設定ってありますよね?(例えばdate形式とか)
そういう諸々の設定を管理するのにDBを使っています。

>>538
Smartyのキャッシュファイルのイメージで回答しました。
メモリキャッシュしても、ページ推移してたらもう一度読み込む必要がありますよね?
セッションやクッキーを使っても良いのですが、サイト自体の設定を
第三者のファイルにキャッシュするのは問題あると思います。
(認識が違っていたらすみません。もっと勉強します
0546nobodyさん2009/04/18(土) 11:22:48ID:???
どの程度効果が出てるかまでは測ってないんでアレだけど、自分はDBの内容から、
実行時に扱いやすいデータに変換したXMLを出力して、こっちを読み込ませてる。
一次データの管理はDBの方が安全だしね。

serializeの方がいいかなぁとも思ったが、なんかあった時にデバッグしにくそうなんで止めた。
後からでも変更できる話だし。

0547nobodyさん2009/04/18(土) 11:49:03ID:oOFMY9IY
cakephpを使おうと思ってcakephpのチュートアルに沿ってブックマークアプリを作ってたのですが
何故こういう書き方にするのか、何故こう書いたらこういう風に出力されるのか、といったことがまったく理解できません
フレームワークを始める前にOOPの勉強をした方がよろしいでしょうか?
また、学習の順番としてはクラスの書き方を覚えてからOOPに移行したらいいでしょうか?
0548nobodyさん2009/04/18(土) 11:49:56ID:???
まず公式マニュアルの言語リファレンスを読んだ方がいいよ
0549nobodyさん2009/04/18(土) 13:08:50ID:???
fsockOpenを使ったメール受信で、複数の添付ファイルがある場合複数ファイルを保存するにはどうすればいいのでしょう。
0550nobodyさん2009/04/18(土) 13:10:05ID:xPyKg5dr
さげちゃった。
0551nobodyさん2009/04/18(土) 13:31:21ID:B6cKaOUW
クラスとか全然理解できない
ユーザ定義関数じゃだめなん??
どういったときにクラスで書くとか
感覚が掴めない
こういうときに必要なんだぜって
やさしく教えてつかあさい;;
0552nobodyさん2009/04/18(土) 13:39:18ID:???
クラスなんて使わない。
関数も自分でつくらない。必要があれば使えばいいし使わないでもいいなら使わないでもいい。
無理に使う意味なんてないでしょ。

0553nobodyさん2009/04/18(土) 13:50:08ID:???
クラスってのはオブジェクト指向設計を実装するために使うものだぞ?
0554nobodyさん2009/04/18(土) 13:59:47ID:moRQGLP/
関数内でincludeされたクラスや関数のスコープはグローバルとなる、というルールはPHP6以降でも変更されることはないの?
0555nobodyさん2009/04/18(土) 14:06:59ID:B6cKaOUW
>>552
そう割り切っちゃえば話は簡単なんだが、理解が出来ないってのがつらい;;

>>553
だから、そいつをやさしく教えてくれ;;
そのオブジェクト指向ってのがよくわからんのだ><
0556nobodyさん2009/04/18(土) 14:12:11ID:???
>>552
たぶんこいつはスパゲッティコード
0557nobodyさん2009/04/18(土) 14:14:54ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0558nobodyさん2009/04/18(土) 14:40:42ID:???
557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0559nobodyさん2009/04/18(土) 15:54:05ID:???
>551
・自分の書いたコードを晒して、ヒマな人に添削してもらう
・腕のいい奴の書いたコードを読む
前者のほうが力になりやすいかね。
屑コードを、クラスを使った近代的なコードに書き直していく過程を見るのが一番わかり易い。
そこらで公開されているPHPのコードはゴミと芸術品の両極端が多いから、初級→中級の勉強には微妙。

そこのステップは知識云々じゃなく、考え方の転換を迫られるから、引っかかる奴が多いのは事実。
>557みたいに諦めちゃう人も多いけど、身に着ければ強力で便利なツール。
0560nobodyさん2009/04/18(土) 15:59:44ID:???
>>549
受信に使っているプロトコルの仕様にならって実装する



OOPについて勉強したい的な話題はこちらでどうぞ
http://pc11.2ch.net/test/read.cgi/php/1172205352/
0561nobodyさん2009/04/18(土) 16:01:28ID:???
>>551
まぁ、なんかWebアプリとかを作成していく中で、
誰かが作成したライブラリだとかPEARだとかを使うことになったとして
そのライブラリがただのユーザ定義関数だけで書かれていて、設定用に
大量のグローバル変数を有していたら、困ったことにならない?

それだけでも、機能の集合がクラスになっているということに意味はあると思うけど。
0562nobodyさん2009/04/18(土) 17:09:46ID:???
>>555
どの辺まで理解できて無いかによってはスレ全部埋めることになるが・・・ム板行ったら?

とりあえず全部自分ひとりで趣味レベルのモノ組むのであればオブジェクト指向にこだわる理由は無い。
どーしても理解したいって言うなら、近道は無いとだけ言っておく。
0563nobodyさん2009/04/18(土) 17:49:55ID:zbLkqu9f
mysqlからデータを引っ張りだし表示させたいのですが
20090418162123をいう文字列を(int)を用いてキャストした場合に
なぜか同じ数字ではなく2147483647という数字に変換されてしまいます。
これはどういった問題が考えられるでしょうか?
すいませんがアドバイスよろしくお願いします。
0564nobodyさん2009/04/18(土) 18:04:18ID:moRQGLP/
10桁こえとる
0565nobodyさん2009/04/18(土) 18:09:53ID:???
DATETIMEのままでいいだろ
0566nobodyさん2009/04/18(土) 18:10:35ID:???
(long)
0567nobodyさん2009/04/18(土) 18:13:15ID:moRQGLP/
しかしPHP5からクラスに変数(メンバ)保存できるようになったのでもっぱらstaticで使いまくって
インスタンス全然つかわんようになったよ。せいぜいmysqliのインスタンス作るぐらい。
staticの方が3倍速いからね
みんなはどうなの?
0568nobodyさん2009/04/18(土) 18:19:54ID:???
そんなに速さ追求するならなぜPHP使ってるの? ってつっこまれるぞ
0569nobodyさん2009/04/18(土) 18:26:13ID:???
staticしか使わないなら関数と大して変わらないじゃん
0570nobodyさん2009/04/18(土) 18:31:48ID:???
>>547
cakeはOOP必須ですよ
0571nobodyさん2009/04/18(土) 18:33:22ID:???
>>570
漢は手続き。

ちょっと言ってみたかっただけだけど。
0572nobodyさん2009/04/18(土) 18:33:40ID:???
OOPはわかってもMVCの概念を理解するのはむずかしい
それを分離して補ってくれるのがフレームワーク
OOPOOP言うのは面倒だからまとめてJavaのサイトで勉強してきなさい
0573nobodyさん2009/04/18(土) 18:34:42ID:???
PHPを書くのに使うIDEってーと、何がお勧めですか?
コードス補完があると便利なんですが
0574nobodyさん2009/04/18(土) 18:55:58ID:moRQGLP/
>>568
普及率が高いから。jspやaspは搭載してないレンタルホストがほとんどだしね。

>>569
カプセル化だけほしいんだよね。変数の扱いが楽だから。漢は手続きと言ってみたいけど、へっぽこなので変数汚染しまくり。
0575nobodyさん2009/04/18(土) 18:57:28ID:???
>>573
>>1
0576nobodyさん2009/04/18(土) 19:03:47ID:???
>>573
初心者のうちはPHPエディタ。
中級以上はPDT
0577nobodyさん2009/04/18(土) 19:36:21ID:???
フレームワークの提供するMVC構造は型志向プログラミングの考え方からはそれなりに遠い地点にあるプログラミング構造だぞ。
例えばCakeやRailsなどのフレームワークはTableModuleパターンを押し付けてくるが、ストラウストラップのOOPの考え方に一番近いのはドメイン駆動型の設計。
で、フレームワーク上でドメイン駆動設計を実現しようとすると、クラス階層を1枚上に丸ごと被せざるを得ない、というくらい両者は相性が悪い。
(基盤となるM-V-C間の繋ぎこみ自体はポリモーフィックに行なわれている事が多いので、無関係でもないが)

まあ、その「押し付け」のおかげでscaffoldingなどの高い開発効率を確保できるわけで、悪いとは言わないけどな。
少なくとも、MVC構造を理解する事と、OOPの考え方を理解する事は、別の問題と考えるべき。
実際、GoFをひとつも理解してなくともRailsやCakeで生産性は出るし、OOPを突きつめると必然的にRailsやCakeの設計に行き着く、というわけでもない。
0578nobodyさん2009/04/18(土) 20:16:51ID:???
>>573
E-TextEditor  ttp://www.e-texteditor.com/
EmEditor v9  ttp://jp.emeditor.com/
TextMate  ttp://macromates.com/
Redcar  ttp://redcareditor.com/
jEdit  ttp://www.jedit.org/
05795632009/04/18(土) 23:12:47ID:???
>>564
>>565
>>566
返事が遅くなりすいません。
単純にint型の最大値を超えてた訳ですね。
本当にありがとうございました!
0580nobodyさん2009/04/19(日) 00:13:57ID:KO8gMtKF
【OS名】Win32
【PHPのバージョン】5.2.9-2
【質問内容】
配列の任意の要素を削除する方法はありますか?
先頭や末尾の削除は簡単にできますが、任意の要素の削除ができません。

一応削除したい要素より後ろの要素を一つずつ前に詰めていく方法もありますが、一発でできるような方法があれば教えてください。
0581nobodyさん2009/04/19(日) 00:32:27ID:???
>>580
http://jp.php.net/manual/ja/function.unset.php

配列の添字も詰めたい場合は、これに
http://jp.php.net/manual/ja/function.array-values.php
0582nobodyさん2009/04/19(日) 01:12:04ID:KO8gMtKF
>>581
解決しました
ありがとうございます
0583nobodyさん2009/04/19(日) 11:36:28ID:???
>>577
日本語わかる?
0584nobodyさん2009/04/19(日) 12:09:11ID:???
プログラムは、「データ」と、データを扱う「処理」の2つの構成要素から成る。(チューリングマシン)
オブジェクトは、データに処理がくっついたもの。
言ってしまえばそれだけのことでしかない。
OOPを難しく考える必要はないよ。
0585nobodyさん2009/04/19(日) 12:21:06ID:???
OOPを勉強するためにJavaを勉強するのも良いけど、
ラムダ計算、関数型プログラミングに慣れておくために、LISPも勉強しておくと良いと思います。
0586nobodyさん2009/04/19(日) 12:47:14ID:???
>>584
オブジェクト指向設計が重要なんだろ
単なるギミックじゃないぞ
0587nobodyさん2009/04/19(日) 13:10:40ID:???
>>584 の言い方はどうかと思うが、OOPで出来ることを、単なるギミックとして使うのもアリだとは思う。
いわゆる Stateパターンとか OOD的にはかなりビミョーと言う認識。
0588nobodyさん2009/04/19(日) 13:15:49ID:TOquu1lD
会員(ログイン)ページの中の申し込みフォームを
入力画面→確認→投稿という形で作ってまして
作成手順は入力画面でポストされたものをセッションに代入、
値を保持しながら確認→投稿という形で作成しました。
申し込みフォーム自体は問題がないのですが、
例えば、入力画面から確認に行き、そこから投稿せず会社概要など
他のページに移動して再度入力画面にいくと以前入力された値が
表示されてしまいます。おそらくセッションが残ったままに
なってるのが原因だとは思います。
入力画面←→確認←→投稿は値を保持させ他のページに飛んだ場合は
値を消去するやり方を教えていただけませんか?
アドバイスよろしくお願いします。
0589nobodyさん2009/04/19(日) 13:33:28ID:???
>>588
unset($_SESSION['hoge'])すればいいんじゃ?
05905882009/04/19(日) 13:44:00ID:???
>>589
返信ありがとうございます!
入力画面、確認画面、投稿画面以外の全てのページに
unset($_SESSION['hoge'])を設定しとこうかなとも考えましたが、
もしかしたら違うスマートやり方もあるのかなと思い質問してみました。
0591nobodyさん2009/04/19(日) 13:46:19ID:???
hiddenでいいやん。
0592nobodyさん2009/04/19(日) 14:16:20ID:???
>>577

そうだよな。CakePHPの例で言っても、所謂OOP的な書き方って、Model, Controllerのextendsくらいだもんな。
基本、コンストラクタは省略されてるし、セッター、ゲッターなしにいきなりプロパティ変数に設定値を代入でOKとか。

あと、命名規則とか記述に縛りが多いのも独特。
05935882009/04/19(日) 15:05:06ID:???
>>591
返信ありがとうございます。
hiddenも検討したんですが今回は項目が多く
入力←確認、確認→投稿時に全ての値をセットしないと
いけなくなりますので出来ればセッションでいけたらと思います。
変な質問すいません・・
0594nobodyさん2009/04/19(日) 15:08:27ID:???
そのページにどこから来たかでわければ?
0595nobodyさん2009/04/19(日) 15:18:01ID:???
初々しいな
0596nobodyさん2009/04/19(日) 16:04:10ID:???
1. 入力フィールドが多数ある時は、そいつらを扱うクラスや関数を作っておくと楽。
複数の画面から同じフォームを生成する場合などは、使い回しが効くと非常にラクになる。

2. hiddenは別に面倒じゃない。確認画面は
foreach($_POST as $k => $v) echo "<input type=\"hidden\" name=\"$k\" value=\"$v\">";
でじゅうぶんだろ?(XSSを考え、実際はエスケープする事)。
■ このスレッドは過去ログ倉庫に格納されています