首頁 > 後端開發 > php教程 > preg_replace_callback 中 function($match) use ($ten), 里面的 use 是什么意义

preg_replace_callback 中 function($match) use ($ten), 里面的 use 是什么意义

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 12:12:51
原創
1115 人瀏覽過

preg_replace_callback 中 function($match) use ($ten), 里面的 use 是什么意思

$string = "Some numbers: one: 1; two: 2; three: 3 end";<br />$ten = 10;<br />$newstring = preg_replace_callback(<br />    '/(\\d+)/',<br />    function($match) use ($ten) { return (($match[0] + $ten)); },<br />    $string<br />    );<br />echo $newstring; 
登入後複製

------解决思路----------------------
use 中文释义 使用

function($match) use ($ten) { return (($match[0] + $ten)); }
让变量 $ten 在匿名函数中可以被使用

相当于
$ten = 10;
function foo($match) {
global $ten;
return (($match[0] + $ten));
}
不过如果 $ten 不是全局变量的话就有麻烦了
------解决思路----------------------
php 5.3新增的闭包语法

闭包函数(匿名函数)可以从父作用域中继承变量 任何此类变量都应该用 use 语言结构传递进去


------解决思路----------------------
5.2 不能用你可以这样
$string = "Some numbers: one: 1; two: 2; three: 3 end";<br />$ten = 10;<br />$newstring = preg_replace_callback(<br />    '/(\\d+)/',<br />    create_function('$match', "return \$match[0] + $ten;"),<br />    $string<br />    );<br />echo $newstring;
登入後複製

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板