2013-04-23 3 views
4

В классе PHP5 я хочу объявить константу следующим образом:Как объявить константу класса PHP с конкатенацией?

class MyClass 
{ 
    const sEOLChars = chr(13) . chr(10); 

, который производит ошибку (Parse error: syntax error, unexpected '(', expecting ',' or ';'). Как это сделать правильно?

+3

Проблема заключается не в конкатенации, а в вызове функции 'chr' - с вашей конкретной ошибкой, вы по-прежнему не можете объединиться в' const'. Но 'const sEOLChars = '\ n \ r';' будет, я считаю, эквивалентен тому, что вы пытаетесь сделать. – Jon

+2

А я вижу. Я не был уверен в точной причине проблемы. Ваше предложение, похоже, работает. – Alex

+0

Возможно, я смешал заказ, может быть '' \ r \ n'' для фактического порядка тех, которые вы использовали, - если порядок имеет значение при использовании 'const' для вас, просто голова. ^^ – Jon

ответ

2

я решил опубликовать свое решение в ответ - только в случае, если нет дубликатов на вопрос не найден.

Для вашей конкретной ошибки проблема заключается в вызове функции chr. Хотя, чтобы ответить на заголовок, конкатенация в настоящее время не возможна для класса const.

Чтобы решить конкретную проблему, хотя, вы можете использовать заднюю ссылка х годов \r\n делает ваша линия выглядит следующим образом:

const sEOLChars = "\r\n"; 

ИЛИ вы можете использовать встроенный в PHP_EOL постоянной, но иметь в виду его только дает вам конец константы линии для вашей текущей платформы. ^^

3

chr(13) эквивалентно "\r" (ВОЗВРАТ КАРЕТКИ) и chr(10) эквивалентно "\n" (LINE FEED). Так что в принципе вы можете написать код так:

class MyClass 
{ 
    const sEOLChars = "\r\n"; 
} 
Смежные вопросы