LoginSignup
0

More than 3 years have passed since last update.

php7.1から使える負の文字列オフセット

Posted at

php7.0以前までは、
$str[3] のように、 角括弧を使用してゼロから始まるオフセットを指定すると、
文字列内の任意の文字を取り出すことが可能でした。

ただ、php7.1からは負の値のオフセットも指定できるようになりました。

注意: PHP 7.1.0 以降では、負の文字列オフセットにも対応するようになりました。 これは、文字列の末尾からのオフセットを表します。 以前のバージョンでは、負のオフセットで読み込もうとすると E_NOTICE が発生し (空文字列を返します)、負のオフセットで書き込もうとすると E_WARNING が発生していました (文字列には何も手が加えられません)。

var_dump("abcdef"[-1]);
var_dump("abcdef"[2]);
var_dump("abcdef"[-3]);
出力結果
ーーーーー

string(1) "f"
string(1) "c"
string(1) "d"

単一文字の場合はsubstr()を使う必要がなくなりそうです。
複数の文字を取り出したり変更したりしたいときは、substr()を使用すればよいです。
ただ、個人的には第三者への可読性という意味ではsubstr()を使ってもいいのかと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0