Heim > Backend-Entwicklung > PHP-Tutorial > PHP 传值问题?

PHP 传值问题?

WBOY
Freigeben: 2016-06-06 20:28:56
Original
1060 Leute haben es durchsucht

<code>function str_emoji($str,$cdn){
  function empic($h){
    $p=dechex(str_replace(array('',';'),'',$h));
    return '<img src="'.%24cdn.%24p.'.png" alt="'.$h.'" class="smiley">';
    //$cdn无法传进来!!!
  };
  $str=preg_replace('#(\&\#[0-9]{6}\;)#ie','empic("\\1")',$str);
  return $str;
};

echo str_emoji($str,$_POST['face']);</code>
Nach dem Login kopieren
Nach dem Login kopieren

$cdn无法传进函数??

回复内容:

<code>function str_emoji($str,$cdn){
  function empic($h){
    $p=dechex(str_replace(array('',';'),'',$h));
    return '<img src="'.%24cdn.%24p.'.png" alt="'.$h.'" class="smiley">';
    //$cdn无法传进来!!!
  };
  $str=preg_replace('#(\&\#[0-9]{6}\;)#ie','empic("\\1")',$str);
  return $str;
};

echo str_emoji($str,$_POST['face']);</code>
Nach dem Login kopieren
Nach dem Login kopieren

$cdn无法传进函数??

php中的闭包中变量的作用范围和js中的稍微有点不同。要使闭包函数外的变量作用于闭包函数内,可用use关键字。参考下面一个例子:

<code class="php">function test($a, $b) {
    $t = function ($c) use ($a, $b) {
        return $a + $b + $c;
    };
    return $t(3);
}

echo test(1, 2);  // 6</code>
Nach dem Login kopieren

$cdn不在empix()的作用域下,它是str_emoji()的全局变量。要把$cdn 传进empix()。

<code class="php">//自己测试下
function str_emoji($str,$cdn){
  function empic($h,$cdn){
    $p=dechex(str_replace(array('',';'),'',$h));
    return '<img src="'.%24cdn.%24p.'.png" alt="'.$h.'" class="smiley">';
    //$cdn无法传进来!!!
  };
  $str=preg_replace('#(\&\#[0-9]{6}\;)#ie','empic("\\1",'.$cdn.')',$str);
  return $str;
};</code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage