【PHP】下らねぇ質問はID出して書き込みやがれ 83
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/06(月) 04:14:58ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0482nobodyさん
2009/04/16(木) 10:28:05ID:???0483nobodyさん
2009/04/16(木) 10:45:47ID:???IE6、IE7よりはずっとW3C標準に準拠してるじゃん
逆に駄目だという根拠はどこにある?
>>482みたいな馬鹿がいるから対応がめんどくせーんだよ
0484nobodyさん
2009/04/16(木) 11:00:19ID:???0485nobodyさん
2009/04/16(木) 11:03:38ID:???○headerの解釈がブラウザによって微妙に異なる
0486nobodyさん
2009/04/16(木) 11:12:52ID:???鯖落ち半端ないし、重すぎる
0487nobodyさん
2009/04/16(木) 11:13:07ID:6tbBKPlQ新着メッセージがある場合にポップアップするのって、Ajaxで定期的に通信を行っているのでしょうか
それとも、オンラインゲームのような通信方法なのでしょうか
定期的な通信の場合、サーバーに負荷がかかると思ったので、オンラインゲームのような、サーバーからクライアントに情報を送信するような方法ってPHPでできませんか?
とか、あー何か色々書いてるうちに、Ajaxで定期的に通信したほうがいいかなと思ってしまったorz
この質問キャンセルするわ
0488nobodyさん
2009/04/16(木) 11:16:38ID:y04hknOTclass Customer {
private $name;
public setName($name) {
$this->name = $name;
}
}
$c1 = new Customer();
$c1->setName("kinosita");
?>
Parse error: parse error, expecting `T_VARIABLE' in C:\apache2\htdocs\test.php on line 4
というエラーが出てしまいます
原因個所がわかりません
どなたかご指摘お願い致します
0489nobodyさん
2009/04/16(木) 11:17:23ID:???0491nobodyさん
2009/04/16(木) 11:28:45ID:y04hknOTfunctionが抜けてました
セットしたkinositaって名前を呼び出したいのですが
>>488の最後にecho $c1->name;と記入すると
Fatal error: Cannot access private property Customer::$name in C:\apache2\htdocs\test.php on line 11
と出ます
なので3行目のprivateをpublicにしたら表示されました
privateの変数を出力する場合はどうしたらよろしいでしょうか?
0492nobodyさん
2009/04/16(木) 11:31:29ID:???0493nobodyさん
2009/04/16(木) 11:56:36ID:pfNZqllCPHP5でクラスのサンプルコードついてる入門サイトを教えてください
0494nobodyさん
2009/04/16(木) 12:07:23ID:???php.netでいいやん。
http://jp.php.net/manual/ja/language.oop5.php
0495nobodyさん
2009/04/16(木) 12:08:47ID:???セッターゲッターって初めて聞いた俺恥ずかしいwwwwwww
今までセット関数・ゲット関数って言ってたwww
0496nobodyさん
2009/04/16(木) 14:54:55ID:???私もJavaでOOPを勉強する前はアクセサを使ってませんでした。^^
http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%A6)#.E3.82.A2.E3.82.AF.E3.82.BB.E3.82.B5
アクセサ (accessor) とは、メソッドの中で特にオブジェクトの属性やプロパティを取得するメソッド (getter) と設定するメソッド (setter) の対のこと。
基本的に getXXX, setXXX のように語幹部が揃っているものをいう。
0497nobodyさん
2009/04/16(木) 14:56:42ID:???うん
俺も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:???0501nobodyさん
2009/04/16(木) 21:14:34ID:???$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:???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拡張でできたっけ?
0505nobodyさん
2009/04/16(木) 21:20:17ID:???0506nobodyさん
2009/04/16(木) 21:57:06ID:XUzGmp6dその方法で半角スペースの問題は解決しました。
しかし今度は長いファイル名のときにファイル名の先頭が文字化けに・・・orz
IEが糞なのを実感した。
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では連想配列
だいたいJava C#で配列なんて使わないし
どうせならPHPがコレクション実装すればいい
ってここでほえても仕方ないんだが
0512nobodyさん
2009/04/17(金) 10:09:01ID:???0513nobodyさん
2009/04/17(金) 10:12:53ID:???0515nobodyさん
2009/04/17(金) 11:09:10ID:???0519nobodyさん
2009/04/17(金) 14:26:53ID:rayC69Kt例えば、パラメータ$_POST['hoge']やセッション変数$_SESSION['hoge']
というのが、特に代入なしに
$hoge
で取れてしまい、そういうものだと思っていたら、あるとき、
それでは取得できなくなったりし、この辺の仕様ってどうなっている?
結局怪しいので、全部きちんと$_POSTなどで取るようにしたが。
0520nobodyさん
2009/04/17(金) 14:27:49ID:???0521nobodyさん
2009/04/17(金) 14:28:33ID:???それ昔の仕様
今でもiniで設定できたはずだけどやめたほうがいい
$_POST、$_GET、$_SESSIONで取得するのが一般的
0523nobodyさん
2009/04/17(金) 15:09:52ID:???0524nobodyさん
2009/04/17(金) 17:12:12ID:uEgfagTh1:MySQL上のconfigテーブルを読み込む
2:configに設定してある内容によって処理を分岐
3:ログを書き込む
という処理が発生します。
1アクセスで何回かのSQLを実行することになるのですが、
サイトのアクセスが増えると、処理の負荷などで後々問題になるでしょうか?
現時点では問題ないのですが、先の事を考える時になります。
0526nobodyさん
2009/04/17(金) 17:25:30ID:???configテーブルが満たす仕様による。
高度な検索性を必要とするconfigテーブルでないのなら、そんな設計はやめた方がいい。
0527nobodyさん
2009/04/17(金) 19:34:25ID:hTOqIwMv例えば写真だけ違うの見せたい場合ってPHPが役立つのですか?
0528nobodyさん
2009/04/17(金) 19:35:39ID:???0529nobodyさん
2009/04/17(金) 19:36:03ID:???・DWのテンプレ機能
・PHP
・Java
・Perl
・Ruby
・JavaScript
0530nobodyさん
2009/04/17(金) 19:59:08ID:???0531nobodyさん
2009/04/17(金) 21:19:55ID:???0532nobodyさん
2009/04/17(金) 21:23:35ID:???0533524
2009/04/17(金) 21:58:50ID:uEgfagThそれも考えたのですが、ファイルに書き出すなら
データベースの利便性が失われる気がして悩んでます。。
セキュリティとかも気になるし。
>>526
高度な検索は必要ありません。テーブルからconfigファイルを読み込み
配列に入れて、各条件(ログインなど)の時に参照すると言った仕様です。
0534nobodyさん
2009/04/17(金) 22:04:21ID:3OZ9UJNj(!($fpではなくて
!$fpみたいなコーディングスタイル使ってる?
0535nobodyさん
2009/04/17(金) 22:05:41ID:???0536nobodyさん
2009/04/17(金) 22:08:53ID:???iniとかXMLとかJSONとか、なんでもいいから好きなファイルフォーマットで書き出しておけ。
もしくは単純にPHPコードに配列として書き込む(当然設定だけ別ファイルに隔離)のもアリ。
(本当はあまりよくないのだが、APCなどのキャッシュが効くようになるという大きなメリットがある)
とりあえず、「データベースの利便性」ってなんだ?
上記のような手段ではなく、わざわざ遅く難しいDBに情報を格納している理由は?
0537nobodyさん
2009/04/17(金) 22:16:19ID:???データベースの接続に必要な情報はファイルの方に書き込まないといけないじゃん
その情報を知ってしまえば、わざわざデータベースに突っ込んでも無意味じゃん
それに設定項目が分散しちゃうと、後でめんどくさくなるだけじゃん
0538nobodyさん
2009/04/18(土) 01:11:57ID:???そもそも>>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:dAOHt7Vpindex.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:???0545524
2009/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:???実行時に扱いやすいデータに変換したXMLを出力して、こっちを読み込ませてる。
一次データの管理はDBの方が安全だしね。
serializeの方がいいかなぁとも思ったが、なんかあった時にデバッグしにくそうなんで止めた。
後からでも変更できる話だし。
0547nobodyさん
2009/04/18(土) 11:49:03ID:oOFMY9IY何故こういう書き方にするのか、何故こう書いたらこういう風に出力されるのか、といったことがまったく理解できません
フレームワークを始める前にOOPの勉強をした方がよろしいでしょうか?
また、学習の順番としてはクラスの書き方を覚えてからOOPに移行したらいいでしょうか?
0548nobodyさん
2009/04/18(土) 11:49:56ID:???0549nobodyさん
2009/04/18(土) 13:08:50ID:???0550nobodyさん
2009/04/18(土) 13:10:05ID:xPyKg5dr0551nobodyさん
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/0555nobodyさん
2009/04/18(土) 14:06:59ID:B6cKaOUWそう割り切っちゃえば話は簡単なんだが、理解が出来ないってのがつらい;;
>>553
だから、そいつをやさしく教えてくれ;;
そのオブジェクト指向ってのがよくわからんのだ><
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:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0559nobodyさん
2009/04/18(土) 15:54:05ID:???・自分の書いたコードを晒して、ヒマな人に添削してもらう
・腕のいい奴の書いたコードを読む
前者のほうが力になりやすいかね。
屑コードを、クラスを使った近代的なコードに書き直していく過程を見るのが一番わかり易い。
そこらで公開されているPHPのコードはゴミと芸術品の両極端が多いから、初級→中級の勉強には微妙。
そこのステップは知識云々じゃなく、考え方の転換を迫られるから、引っかかる奴が多いのは事実。
>557みたいに諦めちゃう人も多いけど、身に着ければ強力で便利なツール。
0560nobodyさん
2009/04/18(土) 15:59:44ID:???受信に使っているプロトコルの仕様にならって実装する
OOPについて勉強したい的な話題はこちらでどうぞ
http://pc11.2ch.net/test/read.cgi/php/1172205352/
0561nobodyさん
2009/04/18(土) 16:01:28ID:???まぁ、なんかWebアプリとかを作成していく中で、
誰かが作成したライブラリだとかPEARだとかを使うことになったとして
そのライブラリがただのユーザ定義関数だけで書かれていて、設定用に
大量のグローバル変数を有していたら、困ったことにならない?
それだけでも、機能の集合がクラスになっているということに意味はあると思うけど。
0562nobodyさん
2009/04/18(土) 17:09:46ID:???どの辺まで理解できて無いかによってはスレ全部埋めることになるが・・・ム板行ったら?
とりあえず全部自分ひとりで趣味レベルのモノ組むのであればオブジェクト指向にこだわる理由は無い。
どーしても理解したいって言うなら、近道は無いとだけ言っておく。
0563nobodyさん
2009/04/18(土) 17:49:55ID:zbLkqu9f20090418162123をいう文字列を(int)を用いてキャストした場合に
なぜか同じ数字ではなく2147483647という数字に変換されてしまいます。
これはどういった問題が考えられるでしょうか?
すいませんがアドバイスよろしくお願いします。
0564nobodyさん
2009/04/18(土) 18:04:18ID:moRQGLP/0565nobodyさん
2009/04/18(土) 18:09:53ID:???0566nobodyさん
2009/04/18(土) 18:10:35ID:???0567nobodyさん
2009/04/18(土) 18:13:15ID:moRQGLP/インスタンス全然つかわんようになったよ。せいぜいmysqliのインスタンス作るぐらい。
staticの方が3倍速いからね
みんなはどうなの?
0568nobodyさん
2009/04/18(土) 18:19:54ID:???0569nobodyさん
2009/04/18(土) 18:26:13ID:???0572nobodyさん
2009/04/18(土) 18:33:40ID:???それを分離して補ってくれるのがフレームワーク
OOPOOP言うのは面倒だからまとめてJavaのサイトで勉強してきなさい
0573nobodyさん
2009/04/18(土) 18:34:42ID:???コードス補完があると便利なんですが
0574nobodyさん
2009/04/18(土) 18:55:58ID:moRQGLP/普及率が高いから。jspやaspは搭載してないレンタルホストがほとんどだしね。
>>569
カプセル化だけほしいんだよね。変数の扱いが楽だから。漢は手続きと言ってみたいけど、へっぽこなので変数汚染しまくり。
0577nobodyさん
2009/04/18(土) 19:36:21ID:???例えばCakeやRailsなどのフレームワークはTableModuleパターンを押し付けてくるが、ストラウストラップのOOPの考え方に一番近いのはドメイン駆動型の設計。
で、フレームワーク上でドメイン駆動設計を実現しようとすると、クラス階層を1枚上に丸ごと被せざるを得ない、というくらい両者は相性が悪い。
(基盤となるM-V-C間の繋ぎこみ自体はポリモーフィックに行なわれている事が多いので、無関係でもないが)
まあ、その「押し付け」のおかげでscaffoldingなどの高い開発効率を確保できるわけで、悪いとは言わないけどな。
少なくとも、MVC構造を理解する事と、OOPの考え方を理解する事は、別の問題と考えるべき。
実際、GoFをひとつも理解してなくともRailsやCakeで生産性は出るし、OOPを突きつめると必然的にRailsやCakeの設計に行き着く、というわけでもない。
0578nobodyさん
2009/04/18(土) 20:16:51ID:???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/
0579563
2009/04/18(土) 23:12:47ID:???>>565
>>566
返事が遅くなりすいません。
単純にint型の最大値を超えてた訳ですね。
本当にありがとうございました!
0580nobodyさん
2009/04/19(日) 00:13:57ID:KO8gMtKF【PHPのバージョン】5.2.9-2
【質問内容】
配列の任意の要素を削除する方法はありますか?
先頭や末尾の削除は簡単にできますが、任意の要素の削除ができません。
一応削除したい要素より後ろの要素を一つずつ前に詰めていく方法もありますが、一発でできるような方法があれば教えてください。
0581nobodyさん
2009/04/19(日) 00:32:27ID:???http://jp.php.net/manual/ja/function.unset.php
配列の添字も詰めたい場合は、これに
http://jp.php.net/manual/ja/function.array-values.php
■ このスレッドは過去ログ倉庫に格納されています