Home > Backend Development > PHP Tutorial > 关于变量的作用域,有点小问题

关于变量的作用域,有点小问题

WBOY
Release: 2016-06-20 12:29:27
Original
972 people have browsed it

看了十八哥的视频,学着做,有个问题想不通。


$tid=$_GET['tid'];

$fh=fopen('./msg.txt','r');

$pr=fgetcsv($fh);

while($pr!=false){
        print_r($pr);
}
?>

为什么$pr=fgetcsv($fh);写在while语句外面会出问题?
必须写成:while(($pr=fgetcsv($fh))!=false)


另外:

$fh=fopen('./msg.txt','r');

while(($row=fgetcsv($fh))!=false){
    
        print_r($row);
    
}
?>
这样是可以循环输出几行的数据,但现在我改成:


$fh=fopen('./msg.txt','r');

while(fgetcsv($fh)!=false){
    
        print_r(fgetcsv($fh));
    
}
?>

却只能输出第二行的数据呢?


回复讨论(解决方案)

1.fgetcsv每执行一次,都会使指针下移一行的
2.$tid=$_GET['tid']; 这个在你程序中没用
第一个程序

<?php$tid=$_GET['tid'];$fh=fopen('./msg.txt','r');$pr=fgetcsv($fh);while($pr!=false){        print_r($pr);}?>
Copy after login
Copy after login


因为$pr不空,所以会死循环,因为你只获取了第一行数据

第二个程序是对的。

第三个程序
<?php$fh=fopen('./msg.txt','r');while(fgetcsv($fh)!=false){ // 这里获取后,指针下移一行            print_r(fgetcsv($fh)); // 所以这里会获取到第二行的数据    }?>
Copy after login
Copy after login


例如:
msg.txt的内容
"aa"
"bb"
"cc"
"dd"
"ee"
则会输出

Array ( [0] => bb )
Array ( [0] => dd )

1.fgetcsv每执行一次,都会使指针下移一行的
2.$tid=$_GET['tid']; 这个在你程序中没用
第一个程序

<?php$tid=$_GET['tid'];$fh=fopen('./msg.txt','r');$pr=fgetcsv($fh);while($pr!=false){        print_r($pr);}?>
Copy after login
Copy after login


因为$pr不空,所以会死循环,因为你只获取了第一行数据

第二个程序是对的。

第三个程序
<?php$fh=fopen('./msg.txt','r');while(fgetcsv($fh)!=false){ // 这里获取后,指针下移一行            print_r(fgetcsv($fh)); // 所以这里会获取到第二行的数据    }?>
Copy after login
Copy after login


例如:
msg.txt的内容
"aa"
"bb"
"cc"
"dd"
"ee"
则会输出

Array ( [0] => bb )
 Array ( [0] => dd )



谢谢,完全理解了!
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template