読者です 読者をやめる 読者になる 読者になる

php 名前空間について

jQuery File Upload Pluginを実行したらこんなワーニングが出た。

PHP Warning:  Unexpected character in input:  '\\' (ASCII=92) state=1

どうやら以下の行でエラーになっていたらしい。

<?php
   $file = new \stdClass();

まず、エラーが起きていた原因については、php5.3移行でしか使えない(\)を使用していたため。
stdClassとは、phpに標準に用意されているクラスらしい。クラス型としてデータを持ちたい場合に使用する。
PHP標準クラスのstdClassについて - phpspot

じゃあ(\)ってなに?なるんだけど、これはphp名前空間を使う場合に使用する。
以下参考サイト
PHPのnamespace(名前空間) | kudox.jp
FAQ: 名前空間について知っておくべきこと (名前空間) - PHPプロ!マニュアル
http://site.oukasei.com/?p=305
まず1つ目のサイトをしっかりと理解した後に、2つ目のサイトを読むと理解しやすいと思う。3つ目のサイトは参考程度に。

<?php
   $file = new \stdClass();

参考サイトを読むとこの意味が分かる。
要は、名前空間配下で、標準のクラスであるstdClassを読む込むために、\をつけている、ということになる。
名前空間配下では、たとえstrlen()のような標準関数であろうとも、先頭に\をつける必要がある。
ただし、関数の場合は、\をつけないと自動的にグローバル関数を読むらしいので関数に至っては省略できるが、クラスの場合は省略できない。

最近始めたfxがなかなか好調です。メインはSBIFXトレード使ってます。
低予算(1000通貨)で比較 | FX比較 低予算から始めるFXランキング 初心者の外為入門