Функции Язык программирования PHP

fscanf

(PHP 4 >= 4.0.1)

fscanf - разьирает ввод из файла в соответствии с форматом.

Описание

mixed fscanf (int handle, string format [, string var1])

Функция fscanf() похожа на sscanf(), но принимает ввод из файла, ассоциированного с дескриптором handle, и интерпретирует ввод в соответствии со специфицированным форматом format. Если функции переданы только два параметра, разобранные значения будут возвращаться как массив. Иначе, если передаются необязательные параметры, эта функция возвратит количество присвоенных значений. Необязательные параметры обязаны передаваться по ссылке.

Любой пробел в строке формата совпадает с пробелом в потоке ввода. Это означает, что даже tab \n в строке формата может совпадать с одиночным пробельным символом в потоке ввода.

Пример 1. fscanf()
$fp 
= fopen ("users.txt","r"); while ($userinfo = fscanf ($fp, "%s\t%s\t%s\n")) { 
list ($name, $profession, $countrycode) = $userinfo; //... здесь что-нибудь сделать 
со значениями } fclose($fp);
Пример 2. users.txt
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it

См. также fread(), fgets(), fgetss(), sscanf(), printf() и sprintf().


Назад Оглавление Вперёд
fread Вверх fseek

Конструкторы

В PHP 3 никакой конструктор в вышеприведённом примере не вызывается. Правило PHP 3 таково: 'Конструктор это функция с тем же именем, что и класс'. Имя класса - B, а функции с именем B() в классе B нет. Ничего не происходит.

Это исправлено в PHP 4 путём введения нового правила: если класс не имеет конструктора, вызывается конструктор базового класса, если он имеется. В РНР 4 предыдущий пример выведет 'I am the constructor of A.<br>'.

class 
A { function A() { echo "I am the constructor of A.<br>\n"; } function 
B() { echo "I am a regular function named B in class A.<br>\n"; echo "I 
am not a constructor in A.<br>\n"; } } class B extends A { function C() 
{ echo "I am a regular <br>\n"; } } // Это вызов B() как конструктора. 
$b = new B;