PHP 次のプログラムを実行した結果を答えなさい

<?php
$str ="abcdefghijk";

$i = strpos($str, 'ghi');
echo substr($str, $i-1);
 ?>

答え

fghijk

解説

strpos() :文字列内の部分文字列が最初に現れる場所を見つけるために使用します
これによって「$str」の中の文字列「ghi」の先頭文字のマルチバイト数で6番目に存在しているので「6」という数字が「$i」に代入されます。

$i = strpos($str, 'ghi');

②substr()は$strの中から、$i-1番目の文字から全てを取り出す。

$i」は①より「6」ということが判明しているため「6-1」で「5

$strの「abcdefghijk」を 0から数えて5番目のところを抜き取ると「fghijk

これを echoするので出力結果は答えとなる。

echo substr($str, $i-1);

この問題のキモ

  • strpos() 第1引数の文字列から、第2引数の文字列を探し出し、その文字数が結果として出力される
  • substr() 第1引数の文字列から、第2引数の文字列を探し出し、その文字列が結果として出力される
タイトルとURLをコピーしました