PHP
あふれ出るジータちゃん愛を証明するために、グラブル用のTwitterアカウントのプロフ画像を、日替わりでSDジータちゃん全44種類(12/4現在)からランダムに選んで変更するようにした。やりかたは下記サイトの通り。IFTTTと10行のPHPで大変簡単にできた。 IFT…
せっかくEntityにNotBlankアノテーションなりMaxLengthアノテーションなりを付与しているにもかかわらず、Symfony2はそれをバリデーションに使用するばかりでFormBuilderでは参照してくれない。そのため、たとえばinput要素にmax_length属性を付与する場合は…
PHPはいつになったらクラスローダーとアノテーションをサポートしてくれるのか。普段.NETとかJavaとかで当たり前のように使っているので、オブジェクト指向言語*1で今更これがないとかひっくりかえるわ。とりあえずはDoctrine Commonを使ってその辺をカバー…
最近仕事で使った.NETのEntity Framework (DbContext API) に影響されて、DoctrineというORMを触っている。なんでもSymfonyので採用?されているのだとか。Symfony使ったことないので知らなかった。というかPHPでORM使うこと自体初めて。さて、本題。Doctrin…
CodeIgniter の URL : CodeIgniter ユーザガイド 日本語版の設定を、mod_userdirで設定されたユーザディレクトリ以下に設置されたCodeIgniterに対してうまく実現する方法のメモ。なお、PHPはmod_fcgidでCGI版を動作させている。モジュール版PHPを使っている…
Client URL Libraryの略だったのね。ずっとCurlのバインディングか何かだと思ってた。
アシアル亀本さんが公開している携帯絵文字JSONデータを使って、キャリアを意識せずに同じような絵文字を表示します。たとえば、下記のようなViewをDoCoMoの携帯から見ると、number*1が100のDoCoMoの絵文字(猫)を出力します。 d(101); ?>同様に、SoftBankの…
\p{S} : 記号 Target:0aB#1cDあぇカォ亜%ウッ゛〜[SPACE][Full-Width-SPACE][TAB][CR][LF]☆★!”#$%&’()=〜|「」@`{};:+*<>、。?_・¥ Pattern:/\p{S}/msu Matches:゛☆★$=|`+<>¥ \p{P} : 句読点 Target:0aB#1cDあぇカォ亜%…
PHP4でうまいこと楽に漢字を判別できたらいいなぁ、と思ったのが発端で調べてみたメモ。なんでpreg系限定化というと、ereg→そもそも2バイト文字非対応、mb_ereg→マニュアル適当すぎて調べる気失せたため。あとそれ以前にPHP4ではUnicodeプロパティとか使える…
htmlspecialchars アンパサンド、クオート(オプション)、ダブルクオート(オプション)、大なり、小なりをHTMLエンティティに変換する。 2008/06/05追記 第2引数にENT_QUOTESが設定されていないとシングルクオートがエスケープされないので注意。 htmlentities…
引数にNULLが渡された場合、空の配列が渡されたのと同じ動きをする $foo = array_merge(NULL, NULL); $bar = array_merge(array('a'), NULL); $baz = array_merge(NULL, array('b')); $foobar = array_merge(array(), array('c')); var_dump($foo); var_dump…
調べたいオブジェクトがNULLでも大丈夫 PHP5では非推奨。instanceof演算子を代わりに使うらしい class Foo { } $foo =& new Foo(); var_dump(is_a($foo, 'Foo')); var_dump(is_a($bar, 'Foo')); => bool(TRUE) => bool(FALSE)
クラス、メソッド、フィールドに可視性の設定はない。すべてpublicである class Foo { var $bar; function Foo() { $this->bar = "ok"; } } $foo = new Foo(); echo $foo->bar; => "ok" ※ちなみにこの日記でいうところのPHPは、基本的にPHP4のこと
ブロック内とブロック外のコンテキストは同一? { $foo = 'bar'; echo $foo; } echo $foo; => bar => bar
unsetはNULLの代入と等価ではない unsetは「現在のコンテキストにおける変数の破棄」を行う 関数内でunsetを用いる場合は、破棄対象の変数の型に注意(global変数、static変数、参照渡しの変数など)
issetに定数は渡せない define(FOO, NULL) var_dump(FOO != NULL); => FALSE var_dump(isset(FOO)); => parse error
特別な型である NULLは、NULL型の唯一の値である まだ値が何も代入されていない変数はNULLである unsetされた変数はNULLである NULLは大文字小文字を区別しない。NULL、null、nUlLは同一である
NULLが代入されている変数に対してはTRUEを返す