 <p>Because you cannot declare class properties with variable expressions. That means you cannot use any arithmetic operators <code>+ - * /</code> or the concatenation operator <code>.</code>, and you can't call functions. Out of your three lines, only <code>$test</code> should work; the other two will give you errors.</p> <p>If you need to build your strings dynamically, do it in the constructor.</p> <pre><code>class Object { public $test = "Hello"; public $var2; public function __construct() { $this-&gt;var2 = $this-&gt;test . "World"; } } </code></pre> <p>By the way, <code>.</code> is not a "string separator". It's the concatenation operator. You use it to <em>join</em> strings, not <em>separate</em> them.</p>