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

【PHP】下らねぇ質問はここに書き込みやがれ 45

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/12(土) 16:42:48ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0353nobodyさん2007/06/01(金) 06:12:26ID:JTjp1lWk
やってみたけどstaticだとできなかった
0354nobodyさん2007/06/01(金) 06:19:30ID:???
>>352
親クラスが子クラスのメンバを呼び出すべきではないし、
親クラスが子クラスを前提に組まれるべきではないかなぁ。
0355nobodyさん2007/06/01(金) 08:04:04ID:39E81ppx
子クラスでメンバ変数を書き換えれば?

Foo::bar();

abstract class Baz{
  var $Foo;
 public static function bar(){
  // ここで Foo の値を取りたいんですがどうやれば良いんでしょうか
 }
}

class Foo extends Baz{
 var $Foo = 'なんとか';
}
0356nobodyさん2007/06/01(金) 11:17:29ID:adREKSPx
すみません。初心者です。超くだらないとおもうんですが、どこにもWebに載っていないので、
教えてください。

file()関数というものがあります。ためしに変数名に$fileとしてみましても有効に使えました。
また、defineでためしに("file", "test300.php")としてみても有効に使えました。

これらの区別は、関数の場合は()括弧が付いている、変数の場合は$が付いているから
インタープリタは区別できるのですか?
0357nobodyさん2007/06/01(金) 11:25:07ID:???
>>355
Foo::bar();じゃ取れないでしょ
0358nobodyさん2007/06/01(金) 11:30:57ID:???
>>356
いってる説明が全く分からないのでソース出してください。
>関数の場合は()括弧が付いている、変数の場合は$が付いているから
関数と変数を比べてるのがわけがわかりません。
定数と変数ならまだわかるんだけど。
0359nobodyさん2007/06/01(金) 11:47:14ID:???
>>356
PHP初心者がそんなどーでもいいことを気にすることに笑った。
内部的には変数も関数も演算子も、INとOUTのフィルタのかけ方が少し違うだけの全く同じ物(ポインタ)です。
0360nobodyさん2007/06/01(金) 11:59:58ID:39E81ppx
>>355
確かにいったんインスタンスを作らないとダメですね。。すいません。

0361nobodyさん2007/06/01(金) 12:03:09ID:???
>>360
はい?どこにインスタンスの話が出てるんだ?
0362nobodyさん2007/06/01(金) 13:52:41ID:MTWDEGSU
オブジェクト指向が何なのかよくわからないまま
カウンター作ってみました。
http://php.shiriagari.com/counter/counter.php
やっぱり根本的に間違ってますか?

それぞれの機能を部品のようにして
必要なときに呼び出すことだと思って作ってみました。
ただdoCountでまとめただけで
全然意味ないですけど。
0363nobodyさん2007/06/01(金) 13:53:42ID:???
ID出してみたらすごいことになった
0364nobodyさん2007/06/01(金) 13:55:12ID:MTWDEGSU
>>363
間違えた
sageてしまった
0365nobodyさん2007/06/01(金) 13:58:32ID:???
ただ分割してまとめただけじゃねーか・・・
03663562007/06/01(金) 14:00:16ID:adREKSPx
>>359
どうもありがとうございます。しっかり分かりました。なんというか
自分の性格上、内部構造というかある程度深いところまで気になってしょうがないんです。

ありがとうございました。
0367nobodyさん2007/06/01(金) 14:01:53ID:???
>>362
ファイル操作はファイル操作のクラスとしてもったほうがいい
それをextendsかなんかで呼び出してカウンタークラスを作ったほうがいいよ
0368nobodyさん2007/06/01(金) 14:14:02ID:???
>>362
色々突っ込みたいけど最初はそんなもんだろうなぁ。
関数をクラスに突っ込んだだけのような形。
PHPじゃオブジェクト指向はなかなか理解できないからJavaから学ぶといいよ。
オブジェクトに関してはPHPもJavaに近いものがあるから、
多少書き方が違うけど理解できると思う。
0369nobodyさん2007/06/01(金) 14:19:52ID:???
>>362
flockの使い方まちがっとる。
0370nobodyさん2007/06/01(金) 14:28:03ID:Sl+KWZC8
$pager = & Pager::factory($array);

この & はどのような意味なのでしょうか?
0371nobodyさん2007/06/01(金) 14:29:58ID:???
>>370
参照
マニュアルの演算子の項目でも眺めてくるといいよ。
0372nobodyさん2007/06/01(金) 14:37:13ID:???
>>365
すいませんほんとにそのまんまです。

>>367
修正してみました。
http://php.shiriagari.com/counter/counter0.0.2.php
こんな感じで良いですか?

>>368
> 色々突っ込みたいけど最初はそんなもんだろうなぁ。
できればどんどん突っ込んでください><
> PHPじゃオブジェクト指向はなかなか理解できないからJavaから学ぶといいよ。
> オブジェクトに関してはPHPもJavaに近いものがあるから、
> 多少書き方が違うけど理解できると思う。
Javaスレ覗いてきます。
0373nobodyさん2007/06/01(金) 14:39:19ID:bXYxdOH8
質問です。
os winxp home sp2
an httpd 1.42pでphp5.2.2最新版を
動かそうとしたんですが上手くいきません・・・
設定ファイルは見直しているんですが・・・
ひょっとして鯖ソフト側がphpのヴァージョンに
対応してないのでしょうか?それが原因で
動かない可能性はありますか?
0374nobodyさん2007/06/01(金) 14:41:47ID:???
どうして初心者向けの自鯖の入門書は、Windows環境にAn httpd を薦めるんだ
未だに意味がわからん
0375nobodyさん2007/06/01(金) 14:43:36ID:???
GUIで設定できるからじゃね?
0376nobodyさん2007/06/01(金) 14:45:16ID:???
Apacheにしてください。
An httpdなんてレアなもの使ってデバッグしてる人なんて、
このスレで見つかるのか?
0377nobodyさん2007/06/01(金) 14:45:45ID:???
>>374
んじゃ何がいいの?
0378nobodyさん2007/06/01(金) 14:46:34ID:???
>>377
Apache以外に選択肢があるわけが・・・
0379nobodyさん2007/06/01(金) 14:52:37ID:bXYxdOH8
分かりました・・・・
素直にsolaris入れてきます・・・
ありがとうございました。
0380nobodyさん2007/06/01(金) 14:53:24ID:???
なぜ・・・ww
0381nobodyさん2007/06/01(金) 14:56:04ID:???
ApacheがUnixでしか使えないとでも思ってるゆとり世代なんだろうか。
Apacheのページみればマルチプラットフォームなのが一目で分かるだろうに。
0382nobodyさん2007/06/01(金) 15:10:53ID:bXYxdOH8
すいません・・・ちょっとしゃれを言ってみただけです。
今手元には「自宅サーバーfor Window」と「Solaris入門」
という書籍がありまして。そして右手にはunixマシンと
winマシンがありまして・・・正直横着してましたw
0383nobodyさん2007/06/01(金) 15:14:31ID:???
>>381
残念だったな お前が思っている以上にゆとりだったみたいだぞw
0384nobodyさん2007/06/01(金) 15:19:07ID:???
自宅鯖本持ってて、セキュリティ考慮しようとSolarisの入門書まで持ってるのに、
an httpdなんて冗談きついぜ。
どうしても使いたいというならアドバイスはできないが頑張れい。
unixマシンあるならApache+PHPは簡単に環境構築できるでしょ。
そっちのほうがいいと思うけどね。
0385nobodyさん2007/06/01(金) 15:21:06ID:???
入門書あるのにきっと読んでないんだぜ。宝の持ち腐れってやつだなwwww
0386nobodyさん2007/06/01(金) 15:27:35ID:???
Linuxのディストリビューションとかとりあえずインストールしておいて、何も使わない奴いるよね
ブートローダの意味勘違いしたままwinとのデュアルブート設定して
「Windowsが起動しなくなりました」とか質問しているアホゥな奴をたまに見かけるが
>>382もその手の人間だろ
0387nobodyさん2007/06/01(金) 15:39:41ID:???
>ブートローダの意味勘違いしたままwinとのデュアルブート設定して
>「Windowsが起動しなくなりました」
やべw昔の俺だw
0388nobodyさん2007/06/01(金) 15:57:59ID:???
質問です。
amazonで「画像を拡大」をクリックすると小さい画像が出現します。
大きい画像を出したいのですがどうやったらでますか?
0389nobodyさん2007/06/01(金) 15:59:05ID:???
コーヒーフイタ
0390nobodyさん2007/06/01(金) 16:09:30ID:bXYxdOH8
すいませんですた・・・・
アパにしたらさっくり動きましたw
お騒がせしました。
0391nobodyさん2007/06/01(金) 16:10:42ID:???
>>388 つ【拡大鏡】
0392nobodyさん2007/06/01(金) 16:14:19ID:???
>>381
アパッチが他のより優れてる点を教えてください。
0393nobodyさん2007/06/01(金) 16:26:46ID:???
>>392
色々優位点はあるけど、主な点は↓な感じです。

夜間の作戦や悪天候時にディスプレイに視界を表示するシステムやそれが統合されたヘルメット
目標捕捉・指示照準装置
パイロット用の夜間装備
レーダー・ジャマー(電波妨害器)
赤外線迎撃兵器
地表面誘導装置
GPSなどの最先端の航空電子機器
メインローターに23mm砲弾が直撃しても一定時間の飛行が可能
ミリ波レーダーを装備
0394nobodyさん2007/06/01(金) 16:28:57ID:???
>>393
寒い・・・
0395nobodyさん2007/06/01(金) 16:30:38ID:???
>>394
俺の胸で、君を暖めてあげるよ♪
0396nobodyさん2007/06/01(金) 16:31:14ID:???
>>392
Apacheの紹介の何がすばらしいのかっていう項目でも読んできなさい
0397nobodyさん2007/06/01(金) 16:42:26ID:???
>>396
Apacheだけのすばらしい項目をみてもSolarisに比べてどうなのか教えてください
0398nobodyさん2007/06/01(金) 16:54:30ID:???
あの〜、>>397 は私ではないのですが...
公式ページをよく読んでみます。
0399虚弱PHP2007/06/01(金) 16:54:59ID:???
>>372
ファイルクラスのコンストラクタにファイルパスを渡すように変更。
ロックは自動でやるようにしたりして、
インターフェースをもっと単純になるように整理してください。

次、
ファイルクラスはファイルパス毎、ひとつのインスタンスになるように、
エセSingletonパターンにしたり、
カウンタークラスでは、ファイルクラスを継承ではなく委譲を使う。

次、
ファクトリーパターンとか使って、
ファイルだけじゃなく、DBでも大丈夫なようにしたり。

それから、Javaスレ覗くんじゃなくて、Javaの勉強をした方が良い。
結城浩氏の本はとてもいいと思う。
0400nobodyさん2007/06/01(金) 16:55:41ID:???
>>397
知らないのに無理に煽ろうとしなくて良いよ
0401nobodyさん2007/06/01(金) 17:12:11ID:???
ApacheとSolaris比べてる時点でどうかと思うね。
Solarisっていつからhttpdになったんですか?
もしくはApacheはいつからOSになったんですか?
0402nobodyさん2007/06/01(金) 17:13:36ID:???
>虚弱PHP
20個も前のやつにレスすんなうっとーしい
それと同じこと何度も言うなカス
0403nobodyさん2007/06/01(金) 17:25:55ID:???
>>401
おまwそんなことも知らないのかwwww









俺も知らない
0404nobodyさん2007/06/01(金) 17:38:16ID:???
>>401
ApacheがOSって・・・
君は1から勉強してきてね
0405nobodyさん2007/06/01(金) 17:42:15ID:O/c0FzVA
>>404
日本語の読解力が足りないよ
0406nobodyさん2007/06/01(金) 17:50:31ID:???
>>404
君は日本語の勉強を(ry
0407nobodyさん2007/06/01(金) 17:52:08ID:???
>>401が何やら必死に煽ってきてますねww
0408nobodyさん2007/06/01(金) 17:53:13ID:kUpJMD1n
>>404=>>407
かっこ悪いからそのへんにしたほうがいいよ
0409nobodyさん2007/06/01(金) 17:57:46ID:???
>>397,404,407
バカすぎるなお前等w
0410nobodyさん2007/06/01(金) 18:04:30ID:???
>>407
悔しいからって必死になるなよw
0411nobodyさん2007/06/01(金) 18:07:06ID:???
これは腹が痛いwwwwwwwwww
この電波なことを延々といってるのは>>382でおk?w
0412nobodyさん2007/06/01(金) 18:08:14ID:???
>>411
お ま え だ よ
0413nobodyさん2007/06/01(金) 18:18:17ID:???
わかりやすいなぁ・・・

飽きたしそろそろ話の流れ戻そうか。
0414nobodyさん2007/06/01(金) 18:32:45ID:???
mysql_fetch_assocの戻り値をprintf_r関数で表示すると
[TEST] => 1
みたいな形式で表示されるのですが
このTESTという名前を取得する方法を教えてください
0415nobodyさん2007/06/01(金) 18:34:42ID:???
>>414
マニュアルのmysql_fetch_assocの項目にまんまかいてるじゃないか。
0416nobodyさん2007/06/01(金) 18:34:47ID:???
>>414
key
0417nobodyさん2007/06/01(金) 18:34:54ID:???
phpでオブジェクトを使った書き方を勉強中なのですが、以下の点が理解できません。
・var $変数値 = "hoge";
 変数値の前にvarをつける意味がよく分かりません。
 初期化と説明してるサイトもありますが、普通に「$変数値 = "hoge";」だけでは初期化したことにはならないのでしょうか。

・class内にfunctionを定義する優位性が分かりません
 class外に書くのと内に書くのとでどういう優位性があるのでしょうか。
 例えばコール時に class AAA{ function BBB{} } とあって、
 $TEST = new AAA;
 $TEST -> BBB("なんとかかんとか");
 と書くより、
 $TEST BBB(); とclass外にあるユーザ関数を呼び出す方が行数が少なくならないでしょうか。

素人思考な質問でしょうが、よろしくお願いします。
当方php以外の言語はせいぜいperl位ですので、お手柔らかにお願いします。(一応これでもググって着ての質問です;)
0418nobodyさん2007/06/01(金) 18:37:36ID:???
>>417
マニュアル読みましょう
そしてIDを出しましょう
0419nobodyさん2007/06/01(金) 18:40:52ID:???
>>415
わかんなかったんです><
>>416
$res[key] ですか?
0420417 ◆LUdEVzdrco 2007/06/01(金) 18:43:43ID:???
ageていいのか分からないのでIDの代わりに酉つけてみます。
>>418
一応マニュアルは読んでみました。
ttp://jp.php.net/manual/ja/language.oop.php を見たのですがイマイチ理解できませんでした…。
0421nobodyさん2007/06/01(金) 18:45:48ID:???
>>419
http://jp.php.net/manual/ja/function.mysql-fetch-assoc.php
例の最後のほうのwhileで囲まれた部分がヒント。

>>420
>>1も読めないならお帰り下さい。
0422nobodyさん2007/06/01(金) 18:49:49ID:???
>>421
すみません、おもいっきり質問が間違ってました。
欲しいのはフィールド名です・・・
フィールド名を列挙する関数はありますか?><
0423nobodyさん2007/06/01(金) 18:50:40ID:???
更にすみません><
mysql_field_name ですね・・・
お騒がせしました><
0424nobodyさん2007/06/01(金) 18:59:59ID:???
どうでもいいけど、フィールド名というのは止めようね。
カラム名といってくれ。
0425nobodyさん2007/06/01(金) 19:00:11ID:???
>>417
スレのルールを守ってないとはいえ暇だから答えてみる。

>変数値の前にvarをつける意味がよく分かりません。
これはアクセス制限用の修飾子です。意味はあるんです。
varはpublicと同義です。
php5からはJava同様詳細なアクセス制限がつけられるようになりました。
(private, protected, public)
他にもfinalだのstaticだのいろいろ修飾子はあるんですが、
どういう意味かとか使い方はマニュアル見るよろし。

>class内にfunctionを定義する優位性が分かりません
ただのfunctionは関数(ユーザ定義関数)といいますね。
class内にあるfunctionはオブジェクト関数またはメソッドといいます。
要は中身は一緒でも概念が別物なんですよ。
どう違うとかはマニュアルにちゃんとかいてるはずなので見るよろし。

というわけで、ちゃんと意味はあるんですよ。
ただOOPが理解できてないうちはそんなこと考えててもだめ。
勉強してるうち、書いてるうちにだんだんどういうものかわかってくるんですよ。
0426nobodyさん2007/06/01(金) 19:02:05ID:???
>>424に1票
0427nobodyさん2007/06/01(金) 19:09:36ID:???
フィールドでもカラムでも通じるから別にそのへんはどっちでもいいよ。
0428nobodyさん2007/06/01(金) 19:22:50ID:???
>>424
なんで?
0429nobodyさん2007/06/01(金) 19:24:45ID:???
>>428
今時のゆとり教育ではフィールド名とは言わずにカラム名と言うから
0430nobodyさん2007/06/01(金) 19:28:13ID:???
DBの話するときにカラムのほうが一般的だから

>>417
行数が減らせるからとかいう話じゃない
本当に検索してんの?いくらでもオブジェクト指向の解説ページあるじゃん
本当にマニュアル読んでんの?開いたけど理解する気ないんでしょ
本当に>>1読んでんの?上げていいか分からないのでトリップ付けますとか氏ねよ
0431nobodyさん2007/06/01(金) 19:29:04ID:???
マジレスすると、DBのような二次元で表わす行と列のモデルに対応する英語は、
column(C)とrow(R)。
フィールド(field)は、俗的に使われているだけ。
0432nobodyさん2007/06/01(金) 19:29:38ID:???
>>430
今時の子供乙
0433nobodyさん2007/06/01(金) 19:31:48ID:???
英語圏だとcolumnとrowは、数学の行列だろうが、一般的な表だろうが、どこにでも使うから、DBではfieldとrecordが好んで使われることも少なくない
04344172007/06/01(金) 19:44:09ID:lY2OXFpS
とりあえず、>>1読んできました…。 後はLANケーブルで吊れば任務完了です。

>>425
なんとなくvarについては理解できました。
極端な話がコンソール画面でls -laて打ったときのWXRの組み合わせみたいな感じでしょうか。

もうちと検索して出直してきます。ありがとうございました。
0435nobodyさん2007/06/01(金) 20:39:00ID:???
LANケーブルで吊れば
LANケーブルで吊れば
LANケーブルで吊れば
0436nobodyさん2007/06/01(金) 20:39:20ID:???
rowとcolumnは現状のDBでは、位置として殆どの場合正しい。
recordとfieldは意味として常に正しい。
0437nobodyさん2007/06/01(金) 20:45:44ID:???
あんまり気になったからSQL(MySQL)のマニュアルを見てみた
両方使われてた
0438nobodyさん2007/06/01(金) 22:15:46ID:8Txj8d3o
スペースで区切られた単語を
SQLの||検索するには、どういうstr処理が一般的なのでしょうか?

$_REQUEST['search'] = "学校 千葉県 船橋市";

$sql = "select .....where
0439nobodyさん2007/06/01(金) 22:35:42ID:???
>>438
explode使うと便利ですよ
0440nobodyさん2007/06/01(金) 23:25:39ID:TCcOsPVi
>>399
ID変わってしまったかもしれませんが
>>372です。
アドバイスありがとうございます。
がんばってやってみます。
Java 結城浩 アマゾンで買ってきます。
0441nobodyさん2007/06/01(金) 23:43:51ID:???
>>417
・class内にfunctionを定義する優位性が分かりません

ま、あれだな、

・部品は、中身を隠蔽しておいた方が後で使い回せるし、部分的に手を入れやすい

・使い回すためには class化しといた方がいいみたいだ

位の認識で、書き慣れておけばいいと思う。
簡単な処理を書き捨てるのなら、class化のメリットは無いと思うけど。


画面遷移が増えてきたり、
画面ぶっこぬき(スクレイピング)+webapiを混ぜこぜにしてグルグル処理するとかいった
ほとんど同じ処理だが微妙に分岐が異なるような処理をしだすと、class化のメリットがわかると思う。


>>362
がんがれ
とりあえず次はコンストラクタからかな。
class名と同じ名前のfunction を書くと classをnewしたときに、まず呼び出される。
んで、この辺りで、いろいろ前準備をする。


0442nobodyさん2007/06/01(金) 23:43:55ID:MZUMr7GL
データの中に半角の空白が数個あるのですが、全て1個にしたいのですが、
どうすれば宜しいでしょうか?
str_replaceを使おうと思ったのですが、
1個しかないときもあれば10個連続するときもあるので、
うまく1個にできなくて困ってしまいました。

例: <半角空白>12<半角空白><半角空白><半角空白>34<半角空白><半角空白>56 → <半角空白>12<半角空白>34<半角空白>56

ヨロシクお願いします。
0443nobodyさん2007/06/01(金) 23:44:35ID:???
>>439
あ、空白でエクスブロードすればいいんですね!
0444nobodyさん2007/06/01(金) 23:45:52ID:???
>>442
正規表現
0445nobodyさん2007/06/01(金) 23:56:48ID:???
>>442
$foo=preg_replace("/\s+/"," ",$foo);
0446nobodyさん2007/06/02(土) 00:00:04ID:???
>>445
補足
改行を含めたくないなら
$foo=preg_replace("/ +/"," ",$foo);
0447nobodyさん2007/06/02(土) 00:47:46ID:4Fzsq5dM
>>444-446
教えてもらったコードで、思い通りの動作ができました。
どうも、ありがとうござました。
0448nobodyさん2007/06/02(土) 01:57:42ID:IL4/kKoQ
質問させて下さい。
phpの最適化を行っている道すがらで見つけたのですが、以下のURL
ttp://labs.unoh.net/2007/05/phptips.html
・@によるエラー制御は遅い
・エラーメッセージはコストがかかる
とあります。
では実際どうしたら速いのでしょうか?
ワーニングレベルでもエラーを全く吐くことなく組めばいいといわれればそれまでですが。

色々検索したのですが、何処も同じような内容でこれ以上の事がかいていませんでした。
お力添え頂けると幸いです。
0449nobodyさん2007/06/02(土) 02:03:00ID:???
ウォーニングレベルのエラーを運用時まで残すなよ
0450nobodyさん2007/06/02(土) 03:14:10ID:???
たしかに。
エラーをだすプログラムはやめてくれ
0451nobodyさん2007/06/02(土) 03:59:52ID:???
>>448
ttp://www.ilia.ws/files/zend_performance.pdf
の53p目嫁

>>449-450
dbへの接続オープンの @ とか運用時にも残るわけだが
0452nobodyさん2007/06/02(土) 06:53:00ID:???
>>451
保存しました
■ このスレッドは過去ログ倉庫に格納されています