Globalz Globalz - 1 year ago 65
PHP Question

Cannot use concatenation when declaring default class properties in PHP?

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__ . '/';

Answer Source

For PHP Versions Before 5.6


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__ . '/';

PHP 5.6 and Above

As of PHP version 5.6, you can use concatenation when declaring default class properties in PHP. See

This allows places that only take static values (const declarations, property declarations, function arguments, etc) to also be able to take static expressions.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download