ホームページ  >  記事  >  php教程  >  php和js的问题?

php和js的问题?

WBOY
WBOYオリジナル
2016-06-06 19:45:491157ブラウズ

php 1 ? php 2 function fn(){ 3 echo "inside the function:" . $var ."br /" ; 4 $var = "con 2"; 5 echo "inside the function:" .$var ."br /"; 6 } 7 $var = "con 1" ; 8 fn(); 9 echo "outside the function:" . $var ."br /" ; 10 ? js 1 function fn

php

<span> 1</span> <span>php
</span><span> 2</span>         <span>function</span><span> fn(){
</span><span> 3</span>             <span>echo</span> "inside the function:" .<span>$var</span> ."<br>"<span>;
</span><strong><span> 4             $var = "con 2";
 5             echo "inside the function:" .$var ."<br>";
</span></strong><span> 6</span> <span>        }
</span><span> 7</span>         <span>$var</span> = "con 1"<span>;
</span><span> 8</span> <span>        fn();
</span><span> 9</span>         <span>echo</span> "outside the function:" .<span>$var</span> ."<br>"<span>;
</span><span>10</span>     ?>

js

<span>1</span> <span>function</span><span> fn2(){
</span><span>2</span>         <span>//</span><span>因为dada已经存在fn2函数内部了。当它在函数内部找到这个变量之后就不往外找?</span>
<span>3</span>         <span>alert</span>("inside the function:" + dada  +"<br>"<span>);
</span><span><strong>4         var dada = "con 2";
5         <span>alert</span>("inside the function:" + dada  +"<br>");
</strong></span><span>6</span> <span>    }
</span><span>7</span>     <span>var</span> dada = "con 1"<span>;
</span><span>8</span> <span>    fn2();
</span><span>9</span>     <span>alert</span>("outside the function:" + dada  +"<br>");

 

如上两个代码片段,

php输出:

inside the function:
inside the function:con 2
outside the function:con 1

js输出:

inside the function:undefined
inside the function:con 2
outside the function:con 1

 

但是如果把红色的代码删除了,

php输出:

inside the function:
outside the function:con 1
js输出:

inside the function:con 1
outside the function:con 1

分析:

js代码中看到dada 后就在fn中找有没有定义,看到有定义了,所以就不往上面找?

但是因为定义在使用下面,所以值还是空。

删除了fn内部定义的变量后,因为在fn中没有找到dada的定义所以往外找,找到了所以为1?

php是怎么回事?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。