升級 PHP 8/8.1 後值得調整的一些新寫法
升級 PHP 8/8.1 後,用 PHP CS Fixer 的 Migration 系列 rule set,看看原本專案內哪些部分有新的寫法,整理一篇記錄一下。 更直覺的 str_contains 和 str_starts_with 相關規則: modernize_strpos 以往我們常使用 strpos 來檢查指定字串是否有包含另一個字串,或者用它來判斷字串的開始: if ( strpos ( 'Foo Bar Baz' , 'Foo' ) !== false ) { echo 'Found' ; } if ( strpos ( 'Foo Bar Baz' , 'Foo' ) === 0 ) { echo 'Start with Foo' ; } 現在有簡單的 str_contains 和 str_starts_with 了,可讀性更佳: if ( str_contains ( 'Foo Bar Baz' , 'Foo' ) ) { echo 'Found' ; } if ( str_starts_with ( 'Foo Bar Baz' , 'Foo' ) ) { echo 'Start with Foo' ; } 更方便的 ::class magic constants 相關規則: get_class_to_class_keyword 以往 ::class 只能用在 Class 名稱後方,想要從 object 取得 Class 名稱需要使用 get_class 。 $object = new ClassName ( ) ; echo get_class ( $object ) ; 現在可以直接使用在 object 上了: $object = new ClassName ( ) ; echo $object : : class ; 更好讀的八進位數字 相關規則: octal_notation PHP