😞
Laravel5.5のstr_containsがarrayを許容しなくなった
概要
Laravel 5.5 ヘルパによると
str_contains関数は指定した文字列が、2つ目の文字列を含んでいるか調べます。(大文字小文字の区別あり)
$contains = str_contains('This is my name', 'my');
// true
指定した文字列に値のどれかが含まれているかを判定するために、値の配列を渡すことも可能です。
$contains = str_contains('This is my name', ['my', 'foo']);
// true
駄菓子菓子実行すると
>>> str_contains('This is my name', ['my', 'foo']);
TypeError: Argument 2 passed to str_contains() must be of the type string, array given on line 1
>>>
ソースコード
/vendor/symfony/polyfill-php80/bootstrap.php
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
use Symfony\Polyfill\Php80 as p;
if (PHP_VERSION_ID >= 80000) {
return;
}
if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) {
define('FILTER_VALIDATE_BOOL', FILTER_VALIDATE_BOOLEAN);
}
if (!function_exists('fdiv')) {
function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); }
}
if (!function_exists('preg_last_error_msg')) {
function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); }
}
if (!function_exists('str_contains')) {
function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
}
if (!function_exists('str_starts_with')) {
function str_starts_with(string $haystack, string $needle): bool { return p\Php80::str_starts_with($haystack, $needle); }
}
if (!function_exists('str_ends_with')) {
function str_ends_with(string $haystack, string $needle): bool { return p\Php80::str_ends_with($haystack, $needle); }
}
if (!function_exists('get_debug_type')) {
function get_debug_type($value): string { return p\Php80::get_debug_type($value); }
}
if (!function_exists('get_resource_id')) {
function get_resource_id($res): int { return p\Php80::get_resource_id($res); }
}
arrayじゃなくstringになってます。
if (!function_exists('str_contains')) {
function str_contains(string $haystack, string $needle): bool { return p\Php80::str_contains($haystack, $needle); }
}
注意必要ですねー。
Discussion