Si está utilizando PHP> = 5.3, podría utilizar HEREDOC syntax declarar su cadena:
class MyClass {
public $str = <<<STR
this is
a long
string
STR;
}
$a = new MyClass();
var_dump($a->str);
Pero esto:
- sólo es posible con PHP> = 5.3
- y la cadena no debe contener ninguna variable
- esto es porque el valor de la cadena debe conocerse en tiempo de compilación
- que, por cierto, explica por qué la concatenación, con
.
, no funcionará: se realiza en tiempo de ejecución.
Y otro inconveniente es que esto va a poner saltos de línea en la cadena - que podría, o no, ser algo malo.
Si está utilizando PHP < = 5.2:
No puede hacer eso; una solución podría ser para inicializar la cadena en su clase constructor:
class MyClass {
public $str;
public function __construct() {
$this->str = <<<STR
this is
a long
string
STR;
}
}
(misma no con saltos de línea)
O, aquí, se puede hacer cuerdas concatenaciones:
class MyClass {
public $str;
public function __construct() {
$this->str = 'this is' .
'a long' .
'string';
}
}
(de esta manera, no hay líneas secundarias)
Si no, puede tener una cadena que está rodeado por comillas simples o dobles, y lo puso en varias líneas:
class MyClass {
public $str = "this is
a long
string";
}
(Aquí, de nuevo, que tendrá nuevas líneas en la cadena resultante)
No veo ningún motivo por el que lo anterior no funcione. ¿Puedes publicar exactamente tu código? Gracias. –
Seguramente puede abarcar variables en múltiples líneas, ¿puede publicar el código y exactamente cómo no funciona? –
Puede acceder a variables fuera de la clase usando la palabra clave 'global' o la matriz superglobal' $ GLOBALS', por cierto. No lo recomiendo, por supuesto. – Zarel