Today I wanted to concatenate a String value to a Class constant to get some task done. I wrote a line as follows.
Expected value in second constant:
----------------
/var/www/dev/nus/lib/models/performance/emailTemplates/
Actual result:
--------------
Parse error: syntax error, unexpected '.', expecting ',' or ';'
In a way, some one can consider this thing as a bug of PHP. But this is not a bug. You can only initialize class constants with constant values. Here I have passed a statement which has to be evaluated at runtime. But the class constants are defined at compile time which comes earlier.
class DeadlineNotifications extends AppraisalObject {
const ROOT_PATH = '/var/www/dev/nus';
const EMAIL_TEMPLATE_DIR = ROOT_PATH . '/lib/models/performance/emailTemplates/';
Expected value in second constant:
----------------
/var/www/dev/nus/lib/models/performance/emailTemplates/
Actual result:
--------------
Parse error: syntax error, unexpected '.', expecting ',' or ';'
In a way, some one can consider this thing as a bug of PHP. But this is not a bug. You can only initialize class constants with constant values. Here I have passed a statement which has to be evaluated at runtime. But the class constants are defined at compile time which comes earlier.
Comments