PHP recursive değişken değiştirme

0 Cevap php

Ben özyinelemeli verilen bir dize içinde önceden tanımlanmış değişkenleri değiştirmek için kod yazıyorum. Değişkenleri karakter '%' ile başlamaktadır. Ile başlayan giriş dizeleri '^' olarak değerlendirilmelidir.

Örneğin, bu gibi değişkenlerin bir dizi varsayarak:

$vars['a'] = 'This is a string';  
$vars['b'] = '123';  
$vars['d'] = '%c';  // Note that $vars['c'] has not been defined
$vars['e'] = '^5 + %d';  
$vars['f'] = '^11 + %e + %b*2';  
$vars['g'] = '^date(\'l\')';  
$vars['h'] = 'Today is %g.';  
$vars['input_digits'] = '*****';  
$vars['code'] = '%input_digits';  

Aşağıdaki kod neden olacaktır:

a) $str = '^1 + %c';  
   $rc = _expand_variables($str, $vars);  
  // Result: $rc == 1 

b) $str = '^%a != NULL';  
   $rc = _expand_variables($str, $vars);  
   // Result: $rc == 1  

c) $str = '^3+%f + 3';  
   $rc = _expand_variables($str, $vars);  
   // Result: $rc == 262  

d) $str = '%h';  
   $rc = _expand_variables($str, $vars);  
   // Result: $rc == 'Today is Monday'  

e) $str = 'Your code is: %code';  
   $rc = _expand_variables($str, $vars);  
   // Result:  $rc == 'Your code is: *****'  

Bunu yapmak konusunda herhangi bir öneriniz? Bunu yapmak için çalışan birçok gün geçirdim, ancak sadece kısmi bir başarı elde ettik. Ne yazık ki, benim son girişimi bir 'segment hataya' oluşturmak başardı!

Yardım çok takdir!

0 Cevap