Category Archives: 基本 - Page 2

PHPでExif情報を取得

PHPでExif情報を取得 | 5ive™.blog

phpの関数で、Exif関数なんてあるんですね。
これは便利。

PHPとデストラクタ – 日々是雑記

PHPとデストラクタ – 日々是雑記

PHPでデストラクタ、機能としてあるのは知ってるんですが、あまり使う機会が無いです。。

例外が発生している(つまりException型オブジェクトが居る状態)でtry~catchのブロックでデストラクタを定義しているオブジェクトをきちんと始末せずに処理を終わろうとして怒られました。

上記のような罠もあるみたいなので、使う際は気をつけたいと思います。

PHP最適化について検証する

徹底検証!PHP最適化Tips:第1回 世間で噂されるPHP最適化tipsについて検証する|gihyo.jp … 技術評論社

PHP最適化でよく言われる

・echoのほうがprintより速い
・@によるエラー制御は遅い

などをPHPのソースから検証されています。
ソースから検証されると納得せざるえないっ!

PHP の switch 文は判定が緩やか

PHP の switch 文は怖くて使えない – れぶろぐ (2008-10-02)

[php]
function filter($value) {
switch ($value) {
case ‘abc’:
case ‘def’:
return $value;
break;
default:
return ”;
break;
}
}
[/php]

といったプログラムの場合、0を与えたら”"が戻ってきてほしいものですが、

[php]
php > echo filter(0);
0
[/php]

こうなってしまうらしい。。うーむ。確かにマニュアルコメントにも怪しそうな挙動が載ってますねえ。

[php]

$string="2string";

switch($string)
{
case 1:
echo "this is 1";
break;
case 2:
echo "this is 2";
break;
case '2string':
echo "this is a string";
break;
}

?>
[/php]

The swich-statement will halt on ‘case 2′

Answer: this is 2

とか。うーむ。気をつけましょう。

foreachの罠に引っかからない

foreachで(僕が)よく引っかかる罠 | Oddwit

foreachに渡す配列変数が、配列で無い場合に、foreachからエラーが出てしまう。。
プログラムを組んでるとよくある?ことですが、以下のようにして対処するのはどうでしょう、という記事です。

[php]
foreach ( (array) $var as $key=>$value){
echo $key.” : “.$value;
}
[/php]

(array)で配列型にキャストしてしまうという。
これは良い案!早速取り入れなくては。

phpのHeader関数で404を返す

phpのHeader関数が変 – ブックマクロ開発に

header関数で404を返すとき、何も返さないと

[php]
header(“”,true,404);
[/php]

200が返ってしまうらしいです。

[php]
header(” “,true,404);
[/php]

空白文字なりなんなりを返すようにすれば大・丈・夫とのこと!
ひっかかりそう!

__invoke()を使う

__invoke() – 親方、空から覚え書きが!

クラスで

[php]
public function __invoke()
{
echo ‘hoge’;
}
[/php]

というメソッドを宣言しておくと、

[php]
$a = new A();
$a();
[/php]

なんて感じで使えるみたいです。面白い!

PHPで再帰処理を100ループ以上に増やす

phpで再帰処理のループが100回以上になると、

Fatal error: Maximum function nesting level of ’100′ reached, aborting!

と、怒られてしまいますが、102回目ぐらいで終わるのに!という時は悔しいので、あまり褒められたことではないと思いますが、回数を伸ばしてしまったりすることもあります。

xdebugが入っている状態なら、

xdebug.max_nesting_level = 256

とすることで、値分、ネストの最大値が増やせます。
ご利用は計画的に。

PHPでダンプ

PHPの種 ブログ » intやfloatを扱う際の注意点

上記記事で取り上げた、floatの中身を見るスクリプトで

[php]
var_dump(bin2hex(strrev(pack(“d”,0.5+0,5))));
[/php]

こんな風にダンプしていました。なるほど参考になりますということでメモ。

intやfloatを扱う際の注意点

第1回 PHP勉強会 SIDE-Bに行ってきました – hnwの日記

記事中、スライドの『PHPのfloat型やらint型やらの話』が、intやfloatを使う際の注意点として、勉強になります。
0.1を10回足しても1にならない、とか。
floatは滅多に使わないので、ついつい忘れてしまいそうです。。