PHP という言語、そしてその周辺環境で開発を行うにあたって、

これは知っておけ!もしくは気を付けろ!というようなことを教えてください。
PHP 暦 1ヶ月くらいなので当たり前のようなイディオムや注意点を知らないです。
(O'Reilly の『プログラミングPHP』は読みました。)

Ruby や Java, C など他の言語でのプログラミング経験、業務経験はあるため、
今回は PHP に限らない汎用的な注意点は挙げないでください。(DRYにしろとか。)

たとえば、'2a' 問題のような情報はまさに求めているものです。
http://d.hatena.ne.jp/gallu/20061108/p1

とはいえ、広く浅く情報の数がほしいので、気軽に「こんなん知ってるー?」
くらいのノリで回答してもらえるとうれしいです。

回答の条件
  • 1人3回まで
  • 登録:2008/06/25 00:48:35
  • 終了:2008/07/01 21:39:26

ベストアンサー

id:dedara No.1

dedara回答回数30ベストアンサー獲得回数42008/06/25 02:05:12

ポイント50pt

http://slashdot.jp/askslashdot/comments.pl?sid=389009&cid=129069...

ご存知かもしれませんが、ここに書いてあったことは参考になりました

id:zep716

どうもありがとうございます!

読んだことがある気がしますが、すっかり存在を忘れていたので助かりました。


># 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。

># register_globals、magic_quotesはオフにする。

の辺りは、まさにこういうのが聞きたかった内容です。


一方、

># type hintingを積極的に使う。

なんてのはメリット・デメリットあると思うので、もっとつっこんで聞いてみたくなりますね。

チームメンバーが初心者前提だからでしょうか。


># 変数を定数として使わない。定数はdefineで定義するか、const宣言する。

あー、そういえば二つ宣言方法があるなぁと思って検索してみました。

こういう違いなんですね。

http://d.hatena.ne.jp/cloned/20071007


今回の質問に関わるものを中心に抜粋しましたが、他の項目もなぜ挙げているかがよくわかる

(何を言いたくてそう決めたかが想像できる)よい内容ですね。

読めてよかったです。ありがとうございます。

2008/06/25 02:52:04

その他の回答(2件)

id:dedara No.1

dedara回答回数30ベストアンサー獲得回数42008/06/25 02:05:12ここでベストアンサー

ポイント50pt

http://slashdot.jp/askslashdot/comments.pl?sid=389009&cid=129069...

ご存知かもしれませんが、ここに書いてあったことは参考になりました

id:zep716

どうもありがとうございます!

読んだことがある気がしますが、すっかり存在を忘れていたので助かりました。


># 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。

># register_globals、magic_quotesはオフにする。

の辺りは、まさにこういうのが聞きたかった内容です。


一方、

># type hintingを積極的に使う。

なんてのはメリット・デメリットあると思うので、もっとつっこんで聞いてみたくなりますね。

チームメンバーが初心者前提だからでしょうか。


># 変数を定数として使わない。定数はdefineで定義するか、const宣言する。

あー、そういえば二つ宣言方法があるなぁと思って検索してみました。

こういう違いなんですね。

http://d.hatena.ne.jp/cloned/20071007


今回の質問に関わるものを中心に抜粋しましたが、他の項目もなぜ挙げているかがよくわかる

(何を言いたくてそう決めたかが想像できる)よい内容ですね。

読めてよかったです。ありがとうございます。

2008/06/25 02:52:04
id:fukakun No.2

fukakun回答回数54ベストアンサー獲得回数22008/06/25 10:13:34

ポイント20pt

こういうのがあります↓

PHP情報まとめ

たまにでも見ると、新しいネタが効率よく得られるかもしれません。

id:zep716

どうもありがとうございます。

現在なぜか参照できないようでした。

また、後で内容確認させていただきます。

(タイトルで検索してみても、同様なので URI の入力ミスなどでもなさそうです。)


----

確認できました。

今見に行ったかんじだと、求めている情報にたどりつくまでに

けっこうコストがかかりそうですね。

書かれているとおり、ある程度の期間で継続的にチェックすれば欲しい情報にも

当たるのかもしれません。

2008/06/26 01:43:07
id:humiya_r No.3

humiya_r回答回数23ベストアンサー獲得回数02008/06/30 12:30:36

ポイント60pt

12のPHP最適化テクニック

http://phpspot.org/blog/archives/2006/11/12php.html

PHPで仕事をするときの注意

http://phpspot.org/blog/archives/2008/02/php_90.html

初級PHPプログラマがおかしがちなミスTOP10

http://phpspot.org/blog/archives/2007/01/php_71.html


こういった類のことでしょうか?

http://phpspot.org/blog/

id:zep716

どうもありがとうございます!

> 12のPHP最適化テクニック

これ、おもしろかったです。

特に原文から辿れる、Ilia Alshanetsky's PHP performance talk のスライドが

ひじょーーーにためになりました。

質問内容的に濃い内容の情報がいただけるとは思ってなかったので、うれしい誤算でした。


> 初級PHPプログラマがおかしがちなミスTOP10

3. 知りませんでした。関係するところのドキュメントをちゃんと読んでおきます。

PHPSPOT開発日誌さんで紹介されてから更新があったのか、原文は少し内容が違ってますね。

テーマとしては、まさにこの内容です。

(初心者 Web プログラマ向けの情報が少なく、PHP 初心者向けの情報が多いとなおうれしいです。)

2008/07/01 02:00:33
  • id:fukken
    自分もぺーぺーなのでこっちで。

    Perlなんかでよく見かける、if($a)のような書き方を控える。
    $aが未定義の場合、この書き方ではエラーだかNOTICEだかが出ます。isset($a)やempty($a)を使うのが正解。
    (この2つの動作の違いもちょっとだけ注意)

    後は、PHPでは配列は数字をキーとする連想配列に過ぎない、とか。
    $a[1]と$a['1']が同じものかどうか、なんてポイントでハマる機会は実際にはまず無いでしょうが。
    リファレンスの「配列」の項は目を通しておいた方が無難だと思います。
  • id:zep716
    回答遅れてすみません。ログインしないとコメントできないんですね。。

    >Perlなんかでよく見かける、if($a)のような書き方を控える。
    >$aが未定義の場合、この書き方ではエラーだかNOTICEだかが出ます。isset($a)やempty($a)を使うのが正解。

    そうなんですか。
    サンプルコードなんかでも結構 if ($a) な書き方は見かけるので、注意するようにします。
    C 言語の流れの人は上記の書き方でリターン値のエラーチェックとかしがちですよね。

    >(この2つの動作の違いもちょっとだけ注意)

    検索して出てきた、http://www.workspot.jp/tech/php_tips2.html
    なんかも見つつ、試してみました。
    なるほどー。勉強になります。

    試した内容と結果は、 http://sunaot.com/wiki/index.php?php%2FTrueOrFalse
    に残しました。


    >リファレンスの「配列」の項は目を通しておいた方が無難だと思います。

    リファレンス読むのはやっぱり基本ですよね。
    機会があるたびに読むようにはしてますが、まずは配列は熟読してみます。

    ご回答どうもありがとうございました。
    (ペーペーなのでと言わず、よかったら回答の方へご転記ください。ポイント振りますので。)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません