GANCHIKU.com

substrがfalseを返すとき

2007年12月12日
PHP

先日PHPUnit関係で、バグに関して見てくれとのことでメールがありました。
Selenium関係のところで動作がおかしいとのことでしたので、以下のtracに登場してみました。

InvalidArgumentException when running Selenium test

なるほど。問題はsubstrがfalseを返すときに起こるものですね。てっきりstringしか返さないものだと思ったら、

string substr ( string $string , int $start [, int $length ] )

確かにこう書いてあります。

length が指定され、かつ正である場合、 返される文字列は start (string の長さに依存します) から数えてlength 文字数分となります。 もし string が start の文字列長より小さいもしくは等しい場合、FALSE が返されます。

PHP: substr – Manual

より小さい場合はわかるけど、$stringと同じ長さのときもfalseを返してくれるのがなんとも。そして、このバグは、その同じ長さのときに空文字列ではなく、falseを返すので、InvalidArgumentExceptionを投げてしまうというものでした。マニュアルをちゃんと読まないとダメでしたね。勉強になりました。そしてこれからは関数を使う以上、ちゃんと理解してから使った方がいいと思いました。

そして、今日は日比谷図書館。でも、雰囲気は千代田図書館の方がいいですね。キレイやし、夜10時までやってるのもポイント高いです。近くにSUBWAYがあるのもいいですね。明日からは千代田図書館に戻ります。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Shin Ohno 2003-2012