3v4l.org

run code in 300+ PHP versions simultaneously
<?php function endsWith($haystack, $needles) { foreach ((array) $needles as $needle) { var_dump([ '$haystack' => $haystack, '$needle' => $needle, 'strlen($needle)' => strlen($needle), 'substr($haystack, -strlen($needle))' => substr($haystack, -strlen($needle)), 'substr($haystack, -strlen($needle)) === (string) $needle' => substr($haystack, -strlen($needle)) === (string) $needle, ]); } } function replaceFirst($search, $replace, $subject) { var_dump([ '$search' => $search, '$replace' => $replace, '$subject' => $subject, 'strpos($subject, $search)' => $position = strpos($subject, $search), 'substr_replace($subject, $replace, $position, strlen($search))' => substr_replace($subject, $replace, $position, strlen($search)), ]); } endsWith('Шустрая бурая лиса прыгает через ленивую собаку', 'собаку'); // Russian endsWith('날쌘 갈색 여우가 게으른 개를 뛰어넘는다', '개를 뛰어넘는다'); // Korean endsWith('敏捷的棕毛狐狸从懶狗身上跃过', '从懶狗身上跃过'); // Chinese replaceFirst('лиса', 'собаку', 'Шустрая бурая лиса прыгает через ленивую собаку'); // Russian replaceFirst('여우', '개를', '날쌘 갈색 여우가 게으른 개를 뛰어넘는다'); // Korean replaceFirst('狐', '狗', '敏捷的棕毛狐狸从懶狗身上跃过'); // Chinese
Output for 7.0.0 - 7.0.24, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array(5) { ["$haystack"]=> string(88) "Шустрая бурая лиса прыгает через ленивую собаку" ["$needle"]=> string(12) "собаку" ["strlen($needle)"]=> int(12) ["substr($haystack, -strlen($needle))"]=> string(12) "собаку" ["substr($haystack, -strlen($needle)) === (string) $needle"]=> bool(true) } array(5) { ["$haystack"]=> string(56) "날쌘 갈색 여우가 게으른 개를 뛰어넘는다" ["$needle"]=> string(22) "개를 뛰어넘는다" ["strlen($needle)"]=> int(22) ["substr($haystack, -strlen($needle))"]=> string(22) "개를 뛰어넘는다" ["substr($haystack, -strlen($needle)) === (string) $needle"]=> bool(true) } array(5) { ["$haystack"]=> string(42) "敏捷的棕毛狐狸从懶狗身上跃过" ["$needle"]=> string(21) "从懶狗身上跃过" ["strlen($needle)"]=> int(21) ["substr($haystack, -strlen($needle))"]=> string(21) "从懶狗身上跃过" ["substr($haystack, -strlen($needle)) === (string) $needle"]=> bool(true) } array(5) { ["$search"]=> string(8) "лиса" ["$replace"]=> string(12) "собаку" ["$subject"]=> string(88) "Шустрая бурая лиса прыгает через ленивую собаку" ["strpos($subject, $search)"]=> int(26) ["substr_replace($subject, $replace, $position, strlen($search))"]=> string(92) "Шустрая бурая собаку прыгает через ленивую собаку" } array(5) { ["$search"]=> string(6) "여우" ["$replace"]=> string(6) "개를" ["$subject"]=> string(56) "날쌘 갈색 여우가 게으른 개를 뛰어넘는다" ["strpos($subject, $search)"]=> int(14) ["substr_replace($subject, $replace, $position, strlen($search))"]=> string(56) "날쌘 갈색 개를가 게으른 개를 뛰어넘는다" } array(5) { ["$search"]=> string(3) "狐" ["$replace"]=> string(3) "狗" ["$subject"]=> string(42) "敏捷的棕毛狐狸从懶狗身上跃过" ["strpos($subject, $search)"]=> int(15) ["substr_replace($subject, $replace, $position, strlen($search))"]=> string(42) "敏捷的棕毛狗狸从懶狗身上跃过" }

preferences:
145.85 ms | 418 KiB | 5 Q