PHP>Java>>>超えられない壁>>>ASP>Perl
実際はPerlを誰でも分るように劣化させたのがPHPだけどな PHPはJavaのオブジェクト指向を劣化させてとりこんでるしな。 PHPのほうが遥かに少ないコードで構築できると思うが。
例えばどんなの? んじゃjavaのほうが短く実現できるコードを挙げてみろよ http://www.thinkit.co.jp/free/compare/2/5/1.html
例えば、ここにあるようにまともなオブジェクト指向を使ったPHPのコードの
長さはたいしてJavaと変わらない。しかもJAVAのIDEには補完機能が
充実しているし、Javaの場合コードにミスしてもバッググラウンドでコンパイルして
すぐにミスを指摘してくれる。動作させてから間違いに気づいてデバッグする
時間を考えたら、PHPはJAVAにすら劣る。 ちなみにRubyでSingleton作ると
こんな感じになる。うん、さすがスクリプト言語、すっきりしてて気持ちいい。
PHPとは大違い
class Single
private_class_method :new
@@singleObject = nil
def Single.create
if @@singleObject == nil
@@singleObject = new
puts "インスタンスを生成しました。"
end
@@singleObject
end
end
# --- Main --- #
puts "Start."
obj1 = Single.create
obj2 = Single.create
if (obj1 == obj2)
puts "obj1とobj2は同じインスタンスです。"
else
puts "obj1とobj2は同じインスタンスではありません。"
end
puts "End." class Single; public_class_method :new end
obj3 = Single.new
raise "大変だ!obj3はobj1とは違うよ!" if obj1 != obj3
さすがですねwww 当たり前じゃん、Singletonは普通コンストラクタ使えないようにするんじゃね rubyだと、コンストラクタを直に呼び出すのを完全に禁止する手段がないということだよ。
ちなみにphpでシングルトンやる場合にしても、javaの真似してコンストラクタをprivateとかprotectedにする方法よりも、コンストラクタの中で2度目以降のインスタンス化に対して例外を投げる方法をとる方が良い面もある。 rubyだと、コンストラクタを直に呼び出すのを完全に禁止する手段がないということだよ。
ちなみにphpでシングルトンやる場合にしても、javaの真似してコンストラクタをprivateとかprotectedにする方法よりも、コンストラクタの中で2度目以降のインスタンス化に対して例外を投げる方法をとる方が良い面もある。 Rubyでもprivate指定にできるよ。
厳密にやろうと思えば >>20
どうやってやるの?
それは>>16のような再定義で破られない方法なの? ていうか上のコードでもやってるじゃん
private_class_method :newで
このクラスが持つnewクラスメソッドはクラスの外から呼べないよ >>16は>>15の続きなのだよ。
class Single
private_class_method :new
:
うんたらかんたら
end
Single.new # たしかにエラーだわな
class Single # 再び
public_class_method :new
end
Single.new # エラーじゃなくなるわな と思ったけど試してみたらエラーにならないな
まあ自前で実装するよりもRubyのライブラリにあるの使ったほうが確実かも ところが添付ライブラリのsingletonも・・・
require 'singleton'
class Single
include Singleton
public_class_method :new
end
Single.new # アカンやん PHP6あたりでRuby風のArray.eachやArray.collectメソッドを
追加してくるなんて事も、PHPならやりかねないからな。 >>29
オハヨー!!
∧∧ ∩
(`・ω・)/
⊂ ノ
(つノ
(ノ
___/(___
/ (___/
 ̄ ̄ ̄ ̄ ̄ ̄
PHPはセキュリティホール多すぎ
いい加減、安全なバージョンつくれよ PHP経験しかない人がスタンドアローンなプログラミングをやるとしたらC#ですか?
>>33
VB or Delphi or IronPython
それはそうと、俺はASP.NET >> Perl >> PHP >> Javaだな。 javaで作ってると
phpでも出来るよって言ってくるphp厨うぜええええええええええええ