fileRead2.php 파일에서 fileRead2 함수를 호출하는 PHP 스크립트가 있습니다.
아래 함수는 username.txt를 읽습니다 (디스플레이의 사용자 이름).
vim fileRead2.php
<?php
function fileRead2() {
global $fh, $line;
$fh = fopen('username.txt','r');
while ($line = fgets($fh)) {
// <... Do your work with the line ...>
echo($line);
}
fclose($fh);
}
?>
Linux 파일 시스템에서 Linux 명령 cat을 실행하면 'tjones'(사용자 이름)가 표시됩니다.
스크립트에서 아래를 실행합니다.
<?php
// Read the Username
require_once('fileread2.php');
$userName = fileRead2();
echo $userName;
var_dump($userName);
>?
$userName
디스플레이의 'tjones'는 에코 이지만 var_dump는 출력을 NULL로 표시합니다.
var_dump $userName
가 문자열 'tjones'여야 할 때 변수를 NULL로 표시하는 이유가 있습니까?
내가 묻는 이유 $userName;
는 코드의 다른 부분에 대한 변수가 필요하고 NULL이기 때문에 다른 것은 작동하지 않으며 이유를 알지 못하기 때문입니다.
return
대신 사용하려면 fileRead2.php를 수정해야합니다 echo
.
<?php
function fileRead2() {
global $fh, $line;
$fh = fopen('username.txt','r');
$lineReturn = "";
while ($line = fgets($fh)) {
// <... Do your work with the line ...>
$lineReturn = $line;
}
fclose($fh);
return $lineReturn;
}
?>
echo
정보를 표준 출력으로 보내는 데 사용됩니다. 즉, 터미널에서 php 스크립트를 실행하고 echo를 사용하면 터미널로 전송됩니다 (표준 출력을 다른 곳으로 리디렉션하지 않는다고 가정). 웹 콘텐츠를 생성하기 위해 php 스크립트를 사용하는 경우 브라우저에 정보를 출력합니다 (단순화).
반면에 Return은 함수 내부에서 정보를 함수 외부의 코드 블록으로 보내는 데 사용됩니다. 따라서 귀하의 경우 fileRead2 함수가 username.txt 파일에서 읽은 다음 첫 번째 줄 (사용자 이름)을 반환하여 함수 외부에있는 변수를 설정할 수 있습니다. 이렇게하려면을 사용해야 return
합니다.
또 다른 참고로, $ line 변수를 fgets 출력으로 설정하는 것 외에 추가 "작업"을 수행하지 않고 사용자 이름이 username.txt 파일의 첫 번째 줄에있는 경우에는 다음이 필요하지 않습니다. while 루프. 대신을 수행 $line = fgets($fh);
한 다음 물론 파일을 닫고 $line
변수를 반환 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다