foreach($arr as $value){ $value=preg_replace("/href=\"\//i",'href="'.$link,$value); echo $value."
";//此處$value為替換之後的值。 } echo $arr[1];//此處顯示的仍為替換前$arr[1]的值。//請問這個是怎麼回事呢?``
回複內容:
foreach($arr as $value){ $value=preg_replace("/href=\"\//i",'href="'.$link,$value); echo $value."
";//此處$value為替換之後的值。 } echo $arr[1];//此處顯示的仍為替換前$arr[1]的值。//請問這個是怎麼回事呢?``
請先 登入 後評論
預設排序 時間排序
4 個回答
答案對人有協助,有參考價值 0 答案沒協助,是錯誤的答案,答非所問
foreach($arr as &$value){ $value=preg_replace("/href=\"\//i",'href="'.$link,$value); echo $value."
";//此處$value為替換之後的值。}echo $arr[1];//此處顯示的仍為替換前$arr[1]的值。
由於變數範圍的原因,如果你在裡面修改了值,且需要儲存結果,需要將類型定義為參考型別,即&
。
改成這樣
foreach($arr as $key=>$value){ $arr[$key]=preg_replace("/href=\"\//i",'href="'.$link,$value); echo $arr[$key]."
";//此處$value為替換之後的值。 }
你只是對在迴圈體內對局部變數$value做了個replace操作,並沒有把value還給$arr.
foreach($arr as $key => $value){ $value=preg_replace("/href=\"\//i",'href="'.$link,$value); $arr[$key] = $value; echo $value."
";//此處$value為替換之後的值。}echo $arr[1];//此處顯示的仍為替換前$arr[1]的值。
先弄清楚,按值傳遞和按引用傳遞吧