タグ

ブックマーク / cloned.hatenablog.com (4)

  • 正規表現の最短マッチの使い方 - cloned.log

    最短マッチの意味自体はそんなに難しくない。まず最初に通常(最短マッチでない)の場合の説明。 <title>cloned.log</title>という箇所に対して <.*>というパターンを書いてしまうと <title>cloned.log</title> の全てがパターンにマッチしているとみなされる。途中で>が一度出現しているけれど、最後に出てきた>までが「一つのパターン」としてみなされる。 何が困るかというと、例えば上記の場合だとタグだけを引っ掛けたいときに困る。要は、 <title>cloned.log</title> としたいとき。ここで登場するのが最短マッチ。ここの例で言えば、<から始まって最初に>が出てくるまでを「一つのパターン」としてみなしたい訳だ。答えから書くと、 <.*?>となる。?が最短マッチのメタ文字。 ここまでだとそんなに難しくない印象なので、応用して、<a name=

    正規表現の最短マッチの使い方 - cloned.log
  • 「EZサーバーからの応答がありません。」を瞬殺する - cloned.log

    auユーザーで、しかも携帯サイトによく接続する人は何度かみたことがあるメッセージ。 EZサーバーからの応答がありません。しばらくだってからリトライしてください。一度これが表示されるとしばらくはこればかり表示されてWebサイトに繋げない。ただ、どうにも現象が不可思議で、EZWeb自体が混み合っているならば他のサイトも繋げなさそうなものなのにそれは大丈夫だったり、特に電波が悪い訳ではなかったり、他の端末だと繋げたりする。 解決方法。「ブラウザ履歴クリア」を実行する。まさかなと思ってやってみたら、ずばり的中だった。端末が「ここにはしばらく繋ぐなよ」と覚えているみたい。もしかしたら覚える意思はないけど結果的にそうなってるだけなのかもしれないけれど。 という訳で、花火会場のように混雑している訳でもないのに「応答がありません」とか言われた日には、「ブラウザ履歴クリア」が効果的。

    「EZサーバーからの応答がありません。」を瞬殺する - cloned.log
  • cloned.log - PHPの参照渡しは関数の引数だけじゃない

    PHPの参照渡しについて。参照渡しについて説明しているサイトでは圧倒的に関数の引数を例にしていることがほとんど。例えば以下のような感じ。 <?php $v = "default"; rewrite($v); print $v; function rewrite(&$arg) { $arg = "HelloWorld"; } これで「HelloWorld」と出力される。$vを直接変更していないのに、rewrite関数内での変更が$vに対して有効になっていると解く。関数の引数に「&」を付けなければ上書きされることはない(値渡し)。 最初はこれが一番判り易いけれど、もう一歩、変数代入の参照渡しと関数戻り値の参照渡しにも触れて欲しいところ。特に関数戻り値の参照渡しについて触れているサイトが当に少ない。 変数代入の参照渡しというのは以下のコードのような場合。 <?php $a = "default

    cloned.log - PHPの参照渡しは関数の引数だけじゃない
  • PHPの定数をどうするか - cloned.log

    Javaで言うstatic finalをどうするのが良いか。PHPには定数とオブジェクト定数があって、それぞれdefine関数とconstキーワードで宣言できる。具体的にはこんな感じ。 <?php // 定数 define('MESSAGE', 'Hello World'); echo MESSAGE; // オブジェクト定数 class MyClass { const MESSAGE = 'Hello World'; } echo MyClass::MESSAGE; オブジェクト定数という名前ではあるけれどもクラス定数と呼んだ方が解り易いかも。constはstaticキーワードなしにstaticな存在になる(staticキーワードを付けるとシンタックスエラー)。 defineとconstの違いは、グローバルなのかクラス帰属なのかと言う点と、宣言時に演算が使えるかという違いがある。例えば、

    PHPの定数をどうするか - cloned.log
  • 1