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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0587nobodyさん2008/12/19(金) 09:55:28ID:???
>>581
なんでそんなに偉いの?
0588nobodyさん2008/12/19(金) 09:56:42ID:???
>>581
>ここで嘘や適当な返答をしても真に受けるのですか?

情報の出所が重要ならこんなスレいらないってことだよな
0589nobodyさん2008/12/19(金) 09:57:46ID:???
今度は必死に>>581叩きを開始したようですwww
醜すぎる><
0590nobodyさん2008/12/19(金) 09:58:04ID:???
>>586
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
0591nobodyさん2008/12/19(金) 09:58:32ID:???
最近脱線が多いのな。
0592nobodyさん2008/12/19(金) 09:58:53ID:???
煽ったりキチガイ演じたりコピペしたり忙しいな
05935862008/12/19(金) 10:04:26ID:???
>>590
定型文乙wwwww

マジレスすると、俺先月失業して今夜の仕事してんだよ。
ていうか必死に質問してるやつも同じ部類だろ?
必死にPHP習得して転職でもしようと思ってるんだろうけど、
そんなことよりハロワでも向かったほうがいいぞ。マジで・・・
0594nobodyさん2008/12/19(金) 10:07:38ID:???
いまどき学校と会社が昼間しか動いてないと思ってる奴いるとは・・・
0595nobodyさん2008/12/19(金) 10:16:38ID:???
>>594
会社や学校自体はほぼ100%近く昼間しか動いてないだろ
夜間学校なんてそんな多くないし(そもそも夜間のやつは昼間働いてる)
研究室に篭ってるならこんなとこに書き込んでる暇もない
会社は夜は機能しない
24時間監視しないといけないような業種も会社として動いてるわけではない
トラブルがあったらその場は個人やチームで対応して
対応しきれない場合は責任者や専門家を叩き起こしてどうにか対応する
会社としての事後処理は昼間だ
夜に飲食店や風俗嬢向けのアパレル・宝石店・不動産屋なんかもやってるがあれはまた別な
0596nobodyさん2008/12/19(金) 10:18:30ID:???
なにこの必死な人wwwwwwwwwwwwww
0597nobodyさん2008/12/19(金) 10:25:04ID:???
社会人とニートの認識の差です
0598nobodyさん2008/12/19(金) 10:36:32ID:LlHxV6ok
質問

グローバル変数を初期化しないまま
使ったとしても、
register_globals=offであれば、
セキュリティ上の問題は生じない?
0599nobodyさん2008/12/19(金) 10:53:55ID:???
PHPSecInfo

PHPセキュリティ・コンソーシアム(PHP Security Cons
ortium)から無料で入手できるPHPSecInfoというツー
ルは、構成を分析して可能性のあるセキュリティの落
とし穴をレポートしてくれます(図2)。PHPSecInfoは実験
的なツールです。その推奨事項は一般的なものであり
、やみくもにそれらを適用すべきではありません。それ
でも参考にはなりますので、phpsec.org/projects/phps
ecinfoからダウンロードしてみる価値はあるでしょう。

http://phpsec.org/projects/phpsecinfo/
0600nobodyさん2008/12/19(金) 10:59:42ID:???
だからそういうことは自分のブログでやれっての
回答がこないとどうでもいい話題ばっかしやがって
スレ違いもいいところ
0601nobodyさん2008/12/19(金) 11:02:01ID:???
>>600
いや>>599は>>598に教えてやってんだろ
>>598よかったな
これでお前もこのスレとはお別れできそうだな
ちなみに評価ソフトウェアは他にもたくさんある
XSSやSQLインジェクションの評価にはParosなんてのもある
まぁそういうの使ってがんばれや
0602nobodyさん2008/12/19(金) 11:16:16ID:???
危険な関数は停止すべき
http://itpro.nikkeibp.co.jp/article/COLUMN/20070405/267554/
0603nobodyさん2008/12/19(金) 11:35:44ID:/xkb1uRj
if(---) {
  if (---) {
    通常処理A();
  } else {
    エラー処理A();
  }

  if (---) {
    通常処理B();
  } else {
    エラー処理A();
  }

} else {
  エラー処理A();
]

よくこういう形になって、エラー処理Aがたくさんでてきてしまうんですが
もっとスマートにかける(エラー処理Aを1つの箇所にまとめられる)方法があればアドバイスください
0604nobodyさん2008/12/19(金) 11:46:28ID:???
if (a && b) {
} else if (a && c) {
} else if (a && d) {
} else {
エラー処理
}
0605nobodyさん2008/12/19(金) 13:12:22ID:???
>>604
aの条件が何度も出てスマートじゃないです><
0606nobodyさん2008/12/19(金) 13:26:25ID:???
今日はキチガイが一名沸いたな
0607nobodyさん2008/12/19(金) 13:30:43ID:???
>>605
えー
0608nobodyさん2008/12/19(金) 13:50:05ID:???
>>605
ifで無理にネストするよりelseif使ったほうが自然だけど?
ネストした場合は必ず実行するなんかしらの処理を行うのが自然

if () {
 if () {
 } else {
 }
 処理
} else {
 処理
}
0609nobodyさん2008/12/19(金) 15:19:20ID:yzWk+963
おねがいしまーす

1.$_SERVERの値を書き換える事ってできませんか?

2.変数名の「名前」を取得する関数はありますか?
例)
$test = 'test';
echo get_variable_name($test);//←みたいな関数で、出力結果が $test みたいな感じ
0610nobodyさん2008/12/19(金) 15:42:57ID:???
>>609
> 1.$_SERVERの値を書き換える事ってできませんか?
もっと具体的に

> 2.変数名の「名前」を取得する関数はありますか?
ない
ある値が入ってる変数名を取得とかならわかるけど
変数名から変数名を取得するなんて発想が変だよ
結局変数名がわかってるからそのまま
echo "\$test"とやればいいのでは?
0611nobodyさん2008/12/19(金) 16:30:39ID:???
>>609
ローカルで試してみたら?

<?php
echo $_SERVER["HTTP_HOST"]."<br>";//そのまま
$_SERVER["HTTP_HOST"] = "test";
echo $_SERVER["HTTP_HOST"];//test が表示される
?>
うちの環境では一応できたが、こういうことがしたいの?
何に使うんだ。
0612nobodyさん2008/12/19(金) 16:32:56ID:yzWk+963
>>610
1.もっと具体的に↓とかやりたい。
$_SERVER['SCRIPT_URI'] = 'http://hoge.com'.$_SERVER['SCRIPT_URL'];
なぜかというと、FWからアプリサーバーに転送してて、ホスト名がローカルのホスト名になってる。
FWの外からアクセスすると、上の関係でphpMyAdminが動かないのです。

2.変数名が浮動の場合に取得したい
例えば、func_hoeg($unknow_name);
とかした場合、func_hogeに渡された変数名が知りたい。
func_hoeg($unknow_name,'$unknow_name');
↑これでも解決できるが、煩わしい。
PHPは何に使うのか不思議な関数が盛りだくさんなので、ありそう。
0613nobodyさん2008/12/19(金) 17:05:03ID:???
>>612
>1
それってFWの設定で解決できるんじゃないの?
てかDBなんてコマンドでたたけよ…

>2
その程度のことを煩わしいというならセッションかグローバルに
値ぶち込んでキーを渡すようにしたら良いじゃん
0614nobodyさん2008/12/19(金) 17:18:14ID:???
コマンドでとか効率も悪いだろうにw
>>612
1.$_SERVERはただのグローバル変数なので611の方法で可能
2。知る必要あるの?デバッグ関数とかでも作りたいの?
debug_backtraceとか使えば一応取り出せるけど
0615nobodyさん2008/12/19(金) 21:04:09ID:???
与える変数名ごとに場合わけしたいんだろ
func_hoge($add)
func_hoge($view)
func_hoge($delete)
とか
アホの極みだが
0616nobodyさん2008/12/19(金) 21:54:13ID:???
>>593
http://tvde.web.infoseek.co.jp/cgi-bin/jlab-dat/s/344779.jpg
0617nobodyさん2008/12/19(金) 22:25:19ID:???
>>616
 〜〜〜 AAでわかるマスゴミフィルター 〜〜〜
  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  | 北海道から友達と一緒に来ました。         |
  | どうせなら六本木とかおしゃれなところで働きたい|
  \______________  ____ /
                       V   
  ∧_∧                ∧_∧
 ( ・∀・)               (´∀` )
 (    )               (    )
 | | |               | | |
 (__)_)              (_(__)
  麻生            北海道から来たある若者
  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  | 何かありませんか?じゃ仕事は見つからない   |
  | しっかり目的意識を持たないと就職は難しい    |
  \  __________________ /
   V http://headlines.yahoo.co.jp/hl?a=20081219-00000572-san-pol
  ∧_∧                ∧_∧
 ( ・∀・)               (´∀` )
 (    )               (    )
 | | |               | | |
 (__)_)              (_(__)

                     | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|   サッ
  ∧_∧                | 一般の若者   | ミ
 (; ・∀・)               |________|
 (    )               (    )|| ∧∧
 | | |               | | |  ||(゚д゚,,) <的外れだ!批判を呼びそうだ!
 (__)_)              (_(__) Φ⊂ ヽ http://www.47news.jp/CN/200812/CN2008121901000234.html
                             マスゴミ
0618nobodyさん2008/12/19(金) 22:56:08ID:???
トリッキーなコードを書くやつはいっぺん死んでくれ。
処理速度アップとか理由があるならともかく。
0619nobodyさん2008/12/19(金) 23:07:20ID:???
たとえばどんなコード?
0620nobodyさん2008/12/19(金) 23:44:13ID:???
PHPにトリッキーな書き方あるならおれも知りたい
載せてよ
0621nobodyさん2008/12/20(土) 00:02:52ID:???
別にPHPだからどうとか言うことは無いんだが、
複雑な条件式を無理に1文に詰め込んだりとか、
評価戦略を駆使したアルコリズムを書いたりとか。
しかもそのくせコメント残してなかったり。

とにかくメンテナンスしにくいのが嫌だ。
0622nobodyさん2008/12/20(土) 00:04:15ID:???
どうせ三項演算子とか言っちゃうんだろ
0623nobodyさん2008/12/20(土) 00:38:50ID:???
参考演算子を入れ子にするやつは死ねばいいよ
0624nobodyさん2008/12/20(土) 00:44:02ID:???
自分ねちっこくて陰気だから
気に入らない相手をどん底に落とすことしか考えてない。
相手の落ち度を見つけたら
大袈裟に且つ広範囲(関係者だけでなく社員全員をCCに付けて)に告知。
しかしねっちこい性格だから自分は社員全員から嫌われている。
台風のような扱いをうけてるよ。
0625nobodyさん2008/12/20(土) 01:16:01ID:???
大規模WEBシステムの構築にphpって向いてないのでしょうか?
0626nobodyさん2008/12/20(土) 01:21:54ID:???
>>1
0627nobodyさん2008/12/20(土) 01:22:07ID:BBPvbgE4
>>614
おーこんな関数があったのか!
別のことに使えそう。thx

>>613 >>615
素人の発想は貧弱だな
0628nobodyさん2008/12/20(土) 01:24:19ID:???
>>627
>>1
0629nobodyさん2008/12/20(土) 01:33:44ID:???
>>627
図星かw
0630nobodyさん2008/12/20(土) 01:36:26ID:???
変数名を知りたいとか素人発想だな
そんな謎システム組むなよ
フレームワークにはそもそもデバッグモードがあるだろ
0631nobodyさん2008/12/20(土) 01:41:48ID:???
PHP+MySQLの話は
どこの板のどこのスレでするのが
適切かな?
0632nobodyさん2008/12/20(土) 02:16:48ID:???
>>631
SQLの質問ならDB板
SQLが出てくるが質問内容がDBを扱う関数のことなどPHPのことならここでOK
0633nobodyさん2008/12/20(土) 02:36:48ID:???
>>625
そんなことないと思うよ
ようは何で作るか、では無く、どう作るか?
だと思うけど。

取り合えずオブジェクト思考は勉強したほうがいいよ。あとはDBのレプリケーションとかスケーリング関係かな
0634nobodyさん2008/12/20(土) 03:12:34ID:???
質問

「あめぞうウイルス」とはどのようなものだったのか?
0635nobodyさん2008/12/20(土) 03:37:00ID:???
>>634
なんでここで聞くの?スレタイ見えないの?バカなの?
0636nobodyさん2008/12/20(土) 03:45:43ID:???
餌をやるな
0637nobodyさん2008/12/20(土) 04:47:31ID:???
http://pc11.2ch.net/test/read.cgi/esite/1205740833/448-
0638nobodyさん2008/12/20(土) 05:02:20ID:???
>>630
そんなにムキになんなよ、貧弱君。
0639nobodyさん2008/12/20(土) 05:04:14ID:???
はてなの障害、TITLEのエスケープ漏れだったようだね。
TITLEの中に入れられたすべてのタグが
全部チェック無しで流通してしまったようだ

キサマラが「エスケープやサニタイズの話をさせない」
雰囲気を作った結果がこれだ。

責任取るんだろうな。賠償金1億でも2億でも
払ってもらうぞ。
0640nobodyさん2008/12/20(土) 05:06:16ID:???
セキュ板でやれ無能
0641nobodyさん2008/12/20(土) 05:08:36ID:???
それエスケープって言うのか?
0642nobodyさん2008/12/20(土) 06:16:46ID:???
はてなの障害と関係あるのか?
0643nobodyさん2008/12/20(土) 06:25:46ID:???
放置しろよ
0644nobodyさん2008/12/20(土) 06:39:14ID:???
2008年4月、クエリー・ストリングの中に SQL の列の
名前が使用されていたことによって、米国のある州の
Department of Corrections (刑務局) から機密データ
が流出してしまいました。この漏洩事件では、悪意の
あるユーザーが、表示させたいデータベースの列を選
択するようにして、そのページを送信することで、その
データを取得することができたのです。この漏洩事件
によって、アプリケーション開発者がまったく予期しな
かったような入力をユーザーが考え出して実行する手
口が明らかになり、SQL インジェクション攻撃に対して
慎重に対策を施す必要があることが改めて示されまし
た。
0645nobodyさん2008/12/20(土) 07:31:00ID:???
バイナリセーフではない関数の一覧
これらは危険

ereg_replace(), eregi(), eregi_replace(),
split(), spliti(),
include(), include_once(), require(), require_once()
fopen(), file_get_contents(), readfile(), basename()
0646nobodyさん2008/12/20(土) 08:21:27ID:???
http://bitarts.net/secure/index.php?%C0%C8%BC%E5%C0%AD%BC%AD%C5%B5%2FOS%A5%B3%A5%DE%A5%F3%A5%C9%A1%A6%A5%A4%A5%F3%A5%B8%A5%A7%A5%AF%A5%B7%A5%E7%A5%F3

sendmailを安易に呼び出して使うのは
危険なのか?
0647nobodyさん2008/12/20(土) 08:41:56ID:???
>>1を読め
0648nobodyさん2008/12/20(土) 08:44:46ID:???
一切触るな
0649nobodyさん2008/12/20(土) 11:38:13ID:???
>>633
そうですか。ありがとうございます。
@ITかどこかのサイトで以前に大規模WEBシステムをphpをで組むのは危険とかなんとか
いう記事を見た事がありましたので書き込みさせて頂きました。
0650nobodyさん2008/12/20(土) 11:51:55ID:???
自分で経験してない情報をなんでも鵜呑みにするのはよくないぞ
0651nobodyさん2008/12/20(土) 11:57:13ID:???
その話って高負荷分散のケースだね
0652nobodyさん2008/12/20(土) 13:01:48ID:???
↑
じゃやっぱりphp大規模WEBシステムには向いてない?って事でFA?
0653nobodyさん2008/12/20(土) 13:14:13ID:???
大規模になりやすいシステムの分野がphpに向いてないというか。
銀行系とか。
0654nobodyさん2008/12/20(土) 13:20:06ID:???
銀行とか交換機はそもそも別クチだろう
0655nobodyさん2008/12/20(土) 14:00:27ID:???
Webシステムに大規模って存在するのかねぇ
見たことないんだが・・
0656nobodyさん2008/12/20(土) 14:02:38ID:???
開発者人数が多い、という意味で大規模な開発の場合、静的型付け言語の方が圧倒的にやりやすい。
となると、実際問題Java一択になるわけだ。
PHPで開発してもJavaっぽい書き方になる事が多いので、PHPのメリットが活かせないし。

捌くリクエスト数が多い、という意味で大規模ならば、実行速度の面でやや不向き。
だけど、これははっきり言って誤差の範囲。DB方面とかUIの出来のほうがよほど影響が大きい。

ひたすらに画面数が多く、しかも互いに独立性が高い場合、phpはむしろ向いている。
0657nobodyさん2008/12/20(土) 14:08:30ID:???
でもPHPのインタフェースのページってもっさりして重くね?
0658nobodyさん2008/12/20(土) 14:12:34ID:???
>>603
if(!---){
 return エラー処理A();
]
if (!---) {
 return エラー処理B();
}
if (!---) {
 return エラー処理C();
}
if(---){
 return 通常処理A();
}else{
 return 通常処理B();
}

ファウラーの『リファクタリング』「ガード節の導入」を参照。
即returnしちゃまずいっていうなら、即returnできるような形に処理を関数として切り出しておく。
こういう処理を振り分ける部分には、実際の処理内容は一切書かず、こういう風に判定ロジックだけを残したほうが見通しがスッキリする。
意味が分からなくとも、「ifの論理判定を逆転すれば、エラー処理を先に、通常処理を後に書ける」ってのは便利。
可読性が若干落ちるが、エラー処理って大抵数行で終わるしな。
最初のifに対応するelseが1画面に収まる範囲内に無いと、可読性が急激に落ちる。
0659nobodyさん2008/12/20(土) 14:22:24ID:???
ヤフーの社員だけど普通にPHPで大規模なことやってますよ
0660nobodyさん2008/12/20(土) 15:54:33ID:???
だから開発人数の話だって言ってるだろうが落ち目会社!
0661nobodyさん2008/12/20(土) 16:21:34ID:5J5Av4Jf
みんな話が混乱しているから、俺が整理するけど。

web開発の現場で使われることがphpとJavaが多いのは、
技術者の数を確保しやすいため。
マイナー言語だと、募集しても集まらないし保守の時も困る。

大規模案件でphpよりJavaが多いのは、一言で言えば安全だから。
大規模ということは、関与する技術者も多い。そして得てして混交玉石。
その中で一定の質を上げるには、型チェックが厳しくコンパイルレベルでエラーが検出できるなどの
メリットがあるJavaの言語仕様の方が向いている。

処理速度については、処理を速くする機構を使えば、Javaもphpも体して変わりない。

総括すると、大規模な案件は単価が高い。単価が高いからみんなやりたがるし、競争も激しい。
よって、「全体として」Javaの技術者の方がphpのそれよりも単価が高いし、技術力も高い。
あくまで、これは一般論。
0662nobodyさん2008/12/20(土) 16:23:20ID:???
型チェックができることがそんなに有利なの?
0663nobodyさん2008/12/20(土) 16:30:02ID:???
>>661
Javaの人はしっかりしてる人が多いもんな。
V2Cの作者とか。

それに比べてphpはバカが多い
XOOPS CUBEやってるやつとか。

女性にストーカーして警察に呼び出されて
注意された連中って、あいつらくらいだろ?
0664nobodyさん2008/12/20(土) 16:30:38ID:5J5Av4Jf
>>662
Javaの大規模案件を一回やってみれば分かるよ。
型チェックがあることが、どんなに有り難いことか分かるから。
オブジェクト思考がない奴が開発に入ると、どうしてその型が使っているか分からずに、
型でまず苦労するが。
0665nobodyさん2008/12/20(土) 16:32:21ID:???
やれば分かるじゃなくてできたら言葉で説明してくれ
0666nobodyさん2008/12/20(土) 16:35:26ID:???
昔からやってる人なら、

型あり言語としてC、
型なし言語としてBASIC

をやってるから、説明しなくても通じるんだけどねー
0667nobodyさん2008/12/20(土) 16:36:04ID:???
ついでに聞くけど、ネットワーク版で、
web屋は馬鹿でもできるけど、ネットワークエンジニアは馬鹿じゃできない、
っていっていたけど、何?

web屋だって馬鹿じゃできないでしょ。ネットワークエンジニアがweb屋より優れている点って何?
0668nobodyさん2008/12/20(土) 16:36:30ID:???
javaなんてもう廃れ始めてるじゃん
今はどこも.NETだよ
0669nobodyさん2008/12/20(土) 16:38:00ID:???
ちょっとミスしたら5万人の回線が止まったり
するんですよ
0670nobodyさん2008/12/20(土) 16:44:48ID:???
>>660
氏ねコノヤロウ!
ヤフーの正門もくぐれない・就けない・仕事がない(笑)ぐらいの分際で!
0671nobodyさん2008/12/20(土) 16:47:16ID:???
>>669
それって、>>667に対するレス?
それなら、それはweb屋だってそうでしょ。
0672nobodyさん2008/12/20(土) 16:52:27ID:???
あいつらがWEB屋って言ったら
「インターフェースの画面作るだけの人」
くらいの意味で言ってる
0673nobodyさん2008/12/20(土) 17:45:16ID:???
>662
一言で言うと、静的型付け言語の方がルールが多く、ルールに沿った書き方しかできないようになっているから、

たとえばPHPのような動的型付け言語は、ルールを無視してstringを要求する関数にarrayを渡したりできるわけだが、
静的型付け言語で同じ事をしようとすると、普通はコンパイル時、最悪でも実行時にエラーになる。つまりそういうルール違反が出来ない。
「こういう変数を渡しましょうね」とコメントに書くより、特定の型のオブジェクトしか受け取れないようにした方が確実だろ?
そういう、言語レベルで他人に何かを強制する仕組みは、Javaのような静的型付け言語の方が圧倒的に強力。
まあ、その代償として、Hello, worldを出力するのにクラスが必要、みたいな大仰な事になるのだが。

動的型付け言語と静的型付け言語のプロジェクトの効率は、
「コーディング規約」「ファイル名などの命名規則」がないプロジェクトとあるプロジェクトくらい差がある。
小規模なプロジェクトなら無いほうが効率がいいが、関わる人数が増えてくるとこの差は致命的に効いてくる。
0674nobodyさん2008/12/20(土) 17:45:38ID:pE0RX0hB
わるい。
php5からサイトのヘッダーあたりが一発で取れる関数があったはずだが
なんだっけ?
0675nobodyさん2008/12/20(土) 17:50:32ID:???
頑張ってJava勉強したけど、PHPを新たにやらなきゃいけなくなった奴が
発狂してんのか?
0676nobodyさん2008/12/20(土) 17:55:17ID:???
>>673
PHPにだってタイプヒンティングがあるのでは?
0677nobodyくん2008/12/20(土) 18:31:55ID:tNhejazT
mbstring.internal_encodingについて教えてくれ!

こいつはmbstring関数のデフォルトエンコードなの?
それともphpの内部エンコードなの(ゼンドエンジン)?
→ttp://journal.mycom.co.jp/special/2004/php5/010.html

検索したがphpに内部エンコードなんてないとか書いてあって・・・
ttp://hain.jp/index.php/tech-j/2007/02/13/p125

よく分からなくなってきてパニックです。
誰か教えてくれよん〜
0678nobodyさん2008/12/20(土) 18:43:53ID:???
>676
ちなみに俺は>656=>673。>661は別の人。

タイプヒンティングは本質的に「静的型付け言語っぽい考え方」なんだよ。
だから、そういう方向に進んでも「静的型付け言語の劣化版」にしかならない。

そもそも、どんな型でも渡せる、型に縛られないというのが動的型付け言語の強み。
タイプヒンティングの考え方は、その強みを消してしまう。
たとえばPHP6では戻り値のタイプヒンティングが有効になるのだが、開発者はこれを「It's not PHP way」と断言している。
できないとは言っていない。>656でも書いたが、あくまで「(言語として)向いていない」っていうのが俺の主張。

Javaが依存性注入とかチマチマやってる中、動的型付け言語はダックタイピングで型に縛られない書き方が出来るし、動的にクラスを生成する事だって自由自在。
それはそれで強み。それで開発効率が上がる事だって多いし、自分ひとりならその方が快適。
だけど、その柔軟性が足かせになる事だってある、って話。

ま、開発言語が自由に選べるなんて幻想だけどな。俺も32bitOSじゃ扱えない額扱うPHPシステム開発やった事あるし。
0679nobodyさん2008/12/20(土) 18:53:18ID:???
なんでPHPでも静的型付け言語と同じことができるのにJAVAのほうが強力なの?
どちらもできるんなら用途に応じて使い分ければいいじゃん
0680nobodyさん2008/12/20(土) 19:23:22ID:VXNsKNQ0
動的型付けて単なるスクリプトのことだろ?rubyはチーム作業できにくいのかよ。しんだほうがいいよ
0681nobodyさん2008/12/20(土) 19:30:38ID:???
>>680
君のような短絡思考の奴が一番チーム作業ができにくいw
0682nobodyくん2008/12/20(土) 19:53:44ID:tNhejazT
誰か教えてくれw
0683nobodyさん2008/12/20(土) 20:07:09ID:???
>>682
ど偉そうに聞いていいスレへ
0684nobodyさん2008/12/20(土) 20:12:49ID:???
>679
2行目には同意。

そもそも、静的型付けってのはできる事を制限する思想だから、「できる事が多い」は別にメリットではない。
という前提で。宗教論争になるから機能比較はしたくないんだが。

・引数の型によって同名の別関数を呼ぶ、という事ができない。
 同様に、引数の数だけが違う同名の関数を定義できない。
・整数をタイプヒントに使用できない。
 これは早晩解決されるだろうが。
・配列などの宣言時に、中に入る型を指定できない。
・そもそも実行時までタイプヒントに違反している事を検出できない(関数がどの型を返すか明示できないため)。

PHPしか触れてない奴にも容易に想像が付くものだとこの程度。
総じて「型があるからこそ使える便利な機能」は抜け落ちている傾向がある。
これは言語仕様として型を動的に扱う以上、埋めようがない差異。埋めたら別言語になってしまうし、性能がガタ落ちする。
恐らくこういうのが「It's not PHP way.」という発言の真意だろう。
型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。
0685nobodyさん2008/12/20(土) 20:24:58ID:???
>>679
強力という言葉が果たして合うかはわからないが信頼性は高いよ
静的型付けはコンパイル時と実行時の2回チェックが行われる
対して動的型付けは実行しないと問題点がわからない
もう1つ静的型付けにすることによって最適化が図れる
型の定義というのはメモリの確保であるから
書き手が意識して書くことができる
0686nobodyさん2008/12/20(土) 20:27:47ID:???
> 型を使ってプログラマを制約するのは、PHPの得意分野ではないし、PHPの目指す方向でもない。

目指す方向について詳しく。
■ このスレッドは過去ログ倉庫に格納されています