$str = 'hello world'; $str = preg_replace('/world/', 'php', $str); echo $str; // 'hello php'然而,如果我們要將整個句子替換為另一句話,比如'hello universe',就需要使用$&:
$str = 'hello world'; $str = preg_replace('/world/', 'universe', $str . ' $&'); echo $str; // 'hello universe world'這里我們在要替換的字符串后面并接了$&,表示我們要獲取整個字符串,并將其替換為'universe'。結果字符串為'hello universe world'。 除了在preg_replace()函數中使用$&之外,我們還可以在preg_match()、preg_match_all()等函數中使用它來獲取匹配的整個字符串。比如:
$str = 'hello world'; $pattern = '/hello (\w+)/'; preg_match($pattern, $str, $matches); echo '$matches[0]: ' . $matches[0] . '在這個例子中,$matches[0]表示整個匹配的字符串,即'hello world',而$matches[1]表示正則表達式中匹配到的第一個子組,即'world'。 $&雖然很有用,但是由于它的執行效率較低,因此在性能要求高的場合應該盡量避免使用它。 總之,$&是一個在PHP中很有用的特殊變量,可以方便地獲取整個匹配的字符串,用于字符串替換等操作。在使用時需要注意效率問題。
'; // 'hello world' echo '$matches[1]: ' . $matches[1]; // 'world'
上一篇php $()
下一篇php $$ 調用函數