欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php和js的问题?

程序员文章站 2022-05-02 21:00:28
...

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

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

js

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

如上两个代码片段,

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是怎么回事?