Ben preg_replace () işlevi hakkında bir sorum var. Ben 'e' değiştirici ile kullanıyorum. İşte kod parçacığını:
$batchId = 2345;
$code = preg_replace("/[A-Za-z]{2,4}[\d\_]{1,5}[\.YRCc]{0,4}[\#\&\@\^]{0,2}/e",
'translate_indicator(\'$0\', {$batchId})', $code);
I translate_indicator($code, $batch=false)
işlev içinde $batchId
değişkene erişmek istiyorum. Yukarıdaki exapmle, ne yazık ki, düzgün çalışmaz: $ toplu görünmez (var_dump()
sonucu bool(false)
) içinde translate_indicator()
.
Muhtemelen, ben yedek kod hataları sözdizimi var. Ya da, belki, bu preg_replace()
ile değişkenler geçmek imkansız?
Update for the first two answers.
Cevaplar için teşekkür ederim, ama tavsiye yardım etmedi. Zaten çift qoutes yerine tek qoutes denedim yanında. Ben sadece işleve parametre geçme olasılığını test etmek için kod basitleştirilmiş ettik:
$code = preg_replace("/[A-Za-z]{2,4}[\d\_]{1,5}[\.YRCc]{0,4}[\#\&\@\^]{0,2}/e",
"translate_indicator('$0', 12)", $code);
Ayrıca ben translate_indicator()
içinde $ parti için varsayılan değer kaldırdık. Sonuç:
Warning: Missing argument 2 for translate_indicator()
Yani bu yaklaşımı kullanarak parametreyi geçmek imkansız olduğunu düşünüyorum:. (