2014-10-17 2 views
-1

Я получаю эту ошибку:Получение ошибки синтаксического анализа при разборе запятых

Parse error: syntax error, unexpected '$array_of_lines' (T_VARIABLE), expecting function (T_FUNCTION) in C:\wamp\www\site6\book-utilities.inc.php on line 7.

Я пытаюсь использовать два класс для чтения в моих отдельных файлах, файл клиент должен быть прочитан и каждая строка будет читать в новый экземпляр массива. Файл заказов следует читать в массив объектов порядка.

Вот что я имею прямо сейчас, я делаю это неправильно?

<?php 



class readOrders{ 

$array_of_lines = fopen("orders.txt", 'r') or die("Failed to create file"); 
    foreach($array_of_lines as $line) { 
$pieces_of_line = explode(',', $line); 

} 

class readCustomers{ 
$array_of_more_lines = fopen("customers.txt", 'r') or die("Failed to create file"); 
    foreach($array_of_more_lines as $line) { 
$pieces_of_line = explode(',', $line); 

} 


?> 

Вот мои текстовые файлы

Orders.txt

1,4,0133360903,Building Java Programs,Computer Science 
2,6,0321836995,Mathematics All Around,Mathematics 
3,24,0321825721,Mathematics for Elementary Teachers with Activity Manual,Mathematics 
4,10,0133011208,Business Math,Business 
5,10,0321836960,Elementary Statistics,Statistics 
6,15,0321838696,Business Statistics: A First Course,Statistics 
7,19,0133485102,Managing Engineering and Technology,Engineering 
8,2,0133128911,Basics of Web Design: HTML5 & CSS3,Computer Science 
9,2,0133068307,Introduction to JavaScript Programming with XML and PHP,Computer Science 
10,3,0133251241,Horngren's Financial & Managerial Accounting,Business 
11,18,0132948850,Survey of Economics,Economics 
12,18,0132948869,Microeconomics,Economics 
13,18,0132991330,Macroeconomics,Economics 
14,18,0132992795,Macroeconomics, 2/e,Economics 
15,16,0132730359,E-Commerce 2013,Business 
16,29,0132993341,Fundamentals of Futures and Options Markets,Business 
17,21,0132991306,Modern Systems Analysis and Design,Business 
18,25,0321836960,Elementary Statistics,Statistics 
19,25,0321838696,Business Statistics: A First Course,Statistics 
20,5,0133255433,Horngren's Financial & Managerial Accounting, The Managerial Chapters,Business 
21,5,0133255573,Horngren's Financial & Managerial Accounting. The Financial Chapters,Business 
22,11,0205890962,Mosaics: Reading and Writing Essays 6e,Student Success 
23,30,013335671X,Machine Design,Engineering 
24,23,0136015727,Reliability Engineering,Engineering 
25,23,0132832887,Aerodynamics for Engineers,Engineering 
26,23,0321899970,Technical Communication,English 

customers.txt

2,Leonie,Köhler,[email protected],University of Stuttgart,Theodor-Heuss-Straße 34,Stuttgart,,Germany,70174,+49 0711 2842222 
3,Bjørn,Hansen,[email protected],University of Oslo,Ullevålsveien 14,Oslo,,Norway,0171,+47 22 44 22 22 
4,François,Tremblay,[email protected],McGill University,1498 rue Bélanger,Montréal,QC,Canada,H2G 1A7,+1 (514) 721-4711 
5,František,Wichterlová,[email protected],Charles University,Klanova 9/506,Prague,,Czech Republic,14700,+420 2 4172 5555 
6,Astrid,Gruber,[email protected],Vienna University of Technology,Rotenturmstraße 4, Vienna,,Austria,1010,+43 01 5134505 
7,Helena,Holý,[email protected],Charles University,Rilská 3174/6,Prague,,Czech Republic,14300,+420 2 4177 0449 
16,Aaron,Mitchell,[email protected],University of Manitoba,696 Osborne Street,Winnipeg,MB,Canada,R3L 2B9,+1 (204) 452-6452 
17,Ellie,Sullivan,[email protected],Aurora College,5112 48 Street,Yellowknife,NT,Canada,X1A 1N6,+1 (867) 920-2233 
18,João,Fernandes,[email protected],University of Lisbon,Rua da Assunção 53,Lisbon,,Portugal,,+351 (213) 466-111 
19,Madalena,Sampaio,[email protected],University of Porto,4350 Rua dos Campeões Europeus de Viena, Porto,,Portugal,,+351 (225) 022-448 
22,Isabelle,Mercier,[email protected],University of Burgundy,68 Rue Jouvence,Dijon,,France,21000,+33 03 80 73 66 99 
23,Emma,Jones,[email protected],King's College,202 Hoxton Street,London,,United Kingdom,N1 5LH,+44 020 7707 0707 
+1

Вы должны прочитать на классы и объекты в PHP: http://php.net/manual/en/language.oop5.basic .php – jeroen

ответ

3

Класса может иметь только методы и определение свойств непосредственно между скобками { }. Кроме того, вы не закрыли петли foreach.

Похоже, вы хотите запустить свой код в конструкторе:

class readOrders{ 

    public function __construct() 
    { 
     $array_of_lines = fopen("orders.txt", 'r') or die("Failed to create file"); 
     foreach($array_of_lines as $line) { 
      $pieces_of_line = explode(',', $line); 
     } 
    } 

} 
+0

Теперь это читает orders.txt в массив объектов? –

+0

Будет ли возврат или установка внутренней переменной лучше для конструктора здесь? В настоящее время он изменяет значения, но затем не используется –

+0

@MattTingle вы можете подробно рассказать о том, как вы хотите взаимодействовать с двумя классами и желаемыми структурами данных для обоих? У вас есть класс Order или вы хотите использовать stdClass? – MrCode

2

Это, как правило, плохая практика, чтобы иметь более одного класса на один файл. Проблема, скорее всего, генерируется из отсутствующей закрывающей фигурной скобки на вашем цикле Еогеаспа на обоих классах:

class readOrders{ 
    public function __construct(){ 
     $array_of_lines = fopen("orders.txt", 'r') or die("Failed to create file"); 
     foreach($array_of_lines as $line) { 
      pieces_of_line = explode(',', $line); 
     }  
    } 
} 

class readCustomers{ 
    public function __construct(){ 
     $array_of_more_lines = fopen("customers.txt", 'r') or die("Failed to create file"); 
     foreach($array_of_more_lines as $line) { 
      $pieces_of_line = explode(',', $line); 
     } 
    } 
} 
+2

Является ли это даже допустимым синтаксисом для классов? Разве это не должно быть завернуто в публичную функцию с возвратом? –

+0

Вы на 100% прав, вся структура недействительна в опубликованном коде. Я предположил, что он не опубликовал весь свой код/​​не заметил очевидного. – AnchovyLegend

+0

Сообщение об ошибке указывает на недостаток aha, обновите свой ответ соответственно на +1 от меня –

Смежные вопросы