Я хочу иметь строковую переменную для класса PHP, который был бы доступен всем методам.
Однако эта переменная довольно длинна, таким образом, я хочу разделить ее на несколько строк.
Например,
$variable = "line 1" .
"line 2" .
"line 3";
Но выше не работает.
Я попробовал EOD, но EOD не позволяется в классе. И когда я объявляю это вне класса, я не могу получить доступ к переменной из класса.
Каков лучший способ?
Если вы используете PHP> = 5.3 , вы можете использовать синтаксис HEREDOC для объявления своей строки:
class MyClass {
public $str = <<<STR
this is
a long
string
STR;
}
$a = new MyClass();
var_dump($a->str);
Но это:
.
, работать не будет: выполняется во время выполнения. И еще один недостаток состоит в том, что при этом в строку будут помещены символы новой строки, что может быть или нет, плохо.
Если вы используете PHP <= 5.2 :
Вы не можете этого сделать; решением может быть инициализация строки в конструкторе вашего класса:
class MyClass {
public $str;
public function __construct() {
$this->str = <<<STR
this is
a long
string
STR;
}
}
(то же самое, но не с новой строкой)
Или здесь вы можете выполнить конкатенацию строк:
class MyClass {
public $str;
public function __construct() {
$this->str = 'this is' .
'a long' .
'string';
}
}
(таким образом, без новой строки)
Else , вы можете создать строку, заключенную в одинарные или двойные кавычки, и поместить ее в несколько строк:
class MyClass {
public $str = "this is
a long
string";
}
(Здесь снова у вас будет новая строка в результирующей строке)
$var = "this is a really long variable and I'd rather have it " .
"span over multiple lines for readability sake. God it's so hot in here " .
"can someone turn on the A/C?";
echo $var;
Какие результаты:
это действительно длинная переменная, и я бы предпочел, чтобы она занимала несколько строк для удобства чтения. Боже, здесь так жарко, может кто-нибудь включить кондиционер?
То, что у вас есть, теперь работает с использованием оператора конкатенации строк . Если вы можете опубликовать дополнительную информацию о вашей проблеме, код или, возможно, дополнительное объяснение , как это не работает. Дополнительная информация приведет вас к лучшему ответу.