gpt4 book ai didi

跨越多行的 PHP 类常量字符串变量

转载 作者:可可西里 更新时间:2023-10-31 22:13:03 25 4
gpt4 key购买 nike

我想要一个 PHP 类的字符串变量,它可用于所有方法。

但是,这个变量很长,所以我想把它分成多行。

例如,

$variable = "line 1" .
"line 2" .
"line 3";

但以上不起作用。

我试过 EOD,但是 EOD 在类里面是不允许的。当我在类外声明它时,我无法从类内访问该变量。

什么是最好的方法?

最佳答案

如果您使用的是 PHP >= 5.3,您可以使用 HEREDOC syntax声明你的字符串:

class MyClass {
public $str = <<<STR
this is
a long
string
STR;

}

$a = new MyClass();
var_dump($a->str);

但是这个:

  • 仅适用于 PHP >= 5.3
  • 并且字符串不能包含任何变量
    • 这是因为字符串的值必须在编译时已知
    • 顺便说一下,这解释了为什么与 . 的连接不起作用:它是在执行时完成的。

另一个缺点是这会在字符串中放置换行符——这可能是件坏事,也可能不是。


如果您使用的是 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';
}
}

(这样,没有换行符)


否则,您可以使用单引号或双引号括起的字符串,并将其放在多行中:

class MyClass {
public $str = "this is
a long
string";
}

(这里,再一次,您将在结果字符串中有换行符)

关于跨越多行的 PHP 类常量字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com