نگارش جدید php 8.0 سه تابع جدید و پرکاربرد را برای رشتهها تعریف کرده است. این سه تابع عبارتند از:
- str_contains
- str_starts_with
- str_ends_with

همان طو که از نام این سه تابع مشخص است کاربرد آنها برای بررسی وجود، شروع و پایان یک رشته در رشتهی دیگر است. پیش از این برای این عملکرد استفاده از توابع دیگر امکانپذیر بود ولی به دلی استفادهی گسترده، توابعی ویژه برای این سه عملکرد پیادهسازی شده است.
اگر در برنامهنویسی میخواهید از این توابع استفاده کنید و میخواهید کاربرانی که نسخههای قدیمیتر php را نیز نصب دارند، با مشکلی مواجه نشوند، با قطعه کدهای زیر مشکل شما برطرف خواهد شد:
if( ! function_exists( 'str_contains' ) ) { function str_contains( string $haystack, string $needle ) { return '' === $needle || false !== strpos( $haystack, $needle ); } } if( ! function_exists( 'str_starts_with' ) ) { function str_starts_with( string $haystack, string $needle ) { return 0 === strncmp( $haystack, $needle, strlen( $needle ) ); } } if( ! function_exists( 'str_ends_with' ) ) { function str_ends_with( string $haystack, string $needle ) { return '' === $needle || ( '' !== $haystack && 0 === substr_compare( $haystack, $needle, -strlen( $needle ) ) ); } }