Как вызвать строку из другой функции - PullRequest
0 голосов
/ 01 ноября 2018

Это для школьного задания, где мы учимся использовать функции, и я получаю сообщение об ошибке в строке while и fscanf после этого.

<?php

    openFile($fin);
    loadFile($fin);
	
	function openFile($fin) {
		$fin = fopen("employees.txt", "r") or die("File not found!");
	}

	function loadFile(&$fin) {
		fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
		while(!feof(&$fin)) {
			$i = $i + 1; 
			fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
		}
	}
  
?>

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

попробуйте добавить add & openFile ($ fin) и удалить & from while (! Feof (& $ fin))

openFile($fin);
loadFile($fin);

function openFile(&$fin) {
    $fin = fopen("demo.html", "r") or die("File not found!");
}

function loadFile(&$fin) {
    $i=0;
    fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
    while(!feof($fin)) {
        $i = $i + 1; 
        fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
    }

}
0 голосов
/ 01 ноября 2018

вы должны обновить

loadFile(openFile($fin));

function openFile($fin) {
    return fopen("employees.txt", "r") or die("File not found!");

}

function loadFile(&$fin) {
    fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
    while(!feof(&$fin)) {
        $i = $i + 1; 
        fscanf($fin, "%s%s%f", $emp[$i][0],$emp[$i][1],$emp[$i][2]);
    }
}

?>
...