$haystack_en = 'Hello, world!';
var_dump(str_starts_with($haystack_en, 'Hello')); // bool(true)
var_dump(str_starts_with($haystack_en, 'hello')); // bool(false) => 대소문자를 구분
var_dump(str_starts_with($haystack_en, 'world')); // bool(false)

$haystack_ko = '환영합니다!';
var_dump(str_starts_with($haystack_ko, '환')); // bool(true)
var_dump(str_starts_with($haystack_ko, '환영합니다!')); // bool(true)
var_dump(str_starts_with($haystack_ko, '환영합니다xxxx')); // bool(false)
str_starts_with(string $haystack, string $needle): bool
$haystack_1 = 'Hello, world!';
var_dump(str_starts_with($haystack_1, '')); // bool(true)

$haystack_2 = '';
var_dump(str_starts_with($haystack_2, '')); // bool(true)
if ( ! function_exists( 'str_starts_with' ) ) {
	/**
	 * PHP 8.0에서 추가된 `str_starts_with()` 함수의 폴리필.
	 *
	 * 대소문자를 구분하여 주어진 문자열(haystack)이
	 * 특정 부분 문자열(needle)로 시작하는지 확인합니다.
	 *
	 * @param string $haystack 검색할 문자열.
	 * @param string $needle   `$haystack`에서 검색할 부분 문자열.
	 * @return bool `$haystack`가 `$needle`로 시작하면 true를, 그렇지 않으면 false를 반환.
	 */
	function str_starts_with( $haystack, $needle ) {
		if ( '' === $needle ) {
			return true;
		}

		return 0 === mb_strpos( $haystack, $needle );
	}
}