를 입력합니다.변수 내용이 사라지고 루프 나던 내가 파일에서 읽고, 일부 계산 후 다시 쓸 수있는 다음 코드가
if(file_exists(CACHE_FILE_PATH)) {
//read the cache and delete that line!
$inp = array();
$cache = fopen(CACHE_FILE_PATH, 'r');
if($cache) {
while(!feof($cache)) {
$tmp = fgets($cache);
//some logic with $tmp
$inp[] = $tmp;
}
fclose($cache);
}
var_dump($inp);
$cache = fopen(CACHE_FILE_PATH, 'w');
var_dump($inp);
if($cache) {
var_dump($inp);
foreach ($inp as $val) {
echo "\nIN THE LOOP";
fwrite($val."\n");
}
fclose($cache);
}
}
var_dumps의 출력은 다음의 배열에도 불구하고, 그 루프에 가고 IN THE LOOP
인쇄되지
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
! 왜?
'$의 cache' 아마 TRUE ''로 평가하지 않습니다. 서로 다른 장소에서 3 개의'var_dump()'호출을하므로 코드의 어느 부분이 실행되는지 알 수 없습니다. – MrCode
첫 번째 매개 변수가 파일 리소스이기 때문에'fwrite ($ val. "\ n");'는 놀랍지 않습니다. – Crisp