When declaring default values for properties in a PHP class, it appears you can not use concatenation. Is there a reason for this?
class Foo { public $property = __DIR__ . '/'; }
See http://www.php.net/manual/en/language.oop5.properties.php
They are defined by using one of the keywords public, protected, or private, followed by a normal variable declaration. This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.
For more complex initialisation, use the constructor
public function __construct() { $this->settings = __DIR__ . '/'; }
As of PHP version 5.6, you can use concatenation when declaring default class properties in PHP. See https://wiki.php.net/rfc/const_scalar_exprs.
This allows places that only take static values (const declarations, property declarations, function arguments, etc) to also be able to take static expressions.
1.4m articles
1.4m replys
5 comments
57.0k users