Parse error: syntax error, unexpected T_VARIABLE [message #177321] |
Sat, 10 March 2012 14:57 |
Une Bvue
Messages: 30 Registered: March 2012
Karma: 0
|
Member |
|
|
at line :
public static $JAR=$_SERVER['DOCUMENT_ROOT'] .
'/AB2Html/Builder/saxon9he.jar';
i got the error :
Parse error: syntax error, unexpected T_VARIABLE
this is inside a class.
if i test the above line apart, in another script, outside any class, i
get NO error.
then, is that forbiden using such a variable "$_SERVER['DOCUMENT_ROOT'"
inside a class ?
the purpose of using it is to allow my script working on both ubuntu and
Mac OS X.
|
|
|
Solved ? was (Parse error: syntax error, unexpected T_VARIABLE) [message #177322 is a reply to message #177321] |
Sat, 10 March 2012 17:05 |
Une Bvue
Messages: 30 Registered: March 2012
Karma: 0
|
Member |
|
|
Le 10/03/2012 15:57, Une Bévue a écrit :
> at line :
> public static $JAR=$_SERVER['DOCUMENT_ROOT'] .
> '/AB2Html/Builder/saxon9he.jar';
>
> i got the error :
> Parse error: syntax error, unexpected T_VARIABLE
>
> this is inside a class.
>
> if i test the above line apart, in another script, outside any class, i
> get NO error.
>
> then, is that forbiden using such a variable "$_SERVER['DOCUMENT_ROOT'"
> inside a class ?
>
> the purpose of using it is to allow my script working on both ubuntu and
> Mac OS X.
i put those vars outside of the class like this :
define('JAVA_BIN', '/usr/bin/java');
define('SAXON9HE_JAR', $_SERVER['DOCUMENT_ROOT'] .
'/AB2Html/Builder/saxon9he.jar');
class XSLTSaxonProcessor {
and that works fine...
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177323 is a reply to message #177321] |
Sat, 10 March 2012 17:45 |
M. Strobel
Messages: 386 Registered: December 2011
Karma: 0
|
Senior Member |
|
|
Am 10.03.2012 15:57, schrieb Une Bévue:
> at line :
> public static $JAR=$_SERVER['DOCUMENT_ROOT'] . '/AB2Html/Builder/saxon9he.jar';
>
> i got the error :
> Parse error: syntax error, unexpected T_VARIABLE
>
> this is inside a class.
>
> if i test the above line apart, in another script, outside any class, i get NO error.
>
> then, is that forbiden using such a variable "$_SERVER['DOCUMENT_ROOT'" inside a class ?
>
> the purpose of using it is to allow my script working on both ubuntu and Mac OS X.
missing semicolon? in the line before.
/Str.
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177324 is a reply to message #177323] |
Sat, 10 March 2012 18:35 |
Une Bvue
Messages: 30 Registered: March 2012
Karma: 0
|
Member |
|
|
Le 10/03/2012 18:45, M. Strobel a écrit :
> missing semicolon? in the line before.
no, I did verify this point.
in fact i comment out the faulty line and put after it :
public static $JAR='/home/yt/Sites/AB2Html/Builder/saxon9he.jar';
surprisingly the part giving the error, was,for me :
$_SERVER['DOCUMENT_ROOT']
in a class :
<?php
define('JAVA_BIN', '/usr/bin/java');
define('SAXON9HE_JAR', $_SERVER['DOCUMENT_ROOT'] .
'/AB2Html/Builder/saxon9he.jar');
class XSLTSaxonProcessor {
//public static $JAVA='/usr/bin/java';
//public static $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
//$JAR=$_SERVER['DOCUMENT_ROOT'] . '/AB2Html/Builder/saxon9he.jar';
// Parse error: syntax error, unexpected T_VARIABLE in
/home/yt/Sites/AB2Html/Builder/xsltsaxonproc.php on line 5
//public static $JAR='/home/yt/Sites/AB2Html/Builder/saxon9he.jar';
public static $xsl;
public static $xml;
public static $params;
public static $out;
....
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177325 is a reply to message #177321] |
Sat, 10 March 2012 19:06 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 3/10/2012 9:57 AM, Une Bévue wrote:
> at line :
> public static $JAR=$_SERVER['DOCUMENT_ROOT'] .
> '/AB2Html/Builder/saxon9he.jar';
>
> i got the error :
> Parse error: syntax error, unexpected T_VARIABLE
>
> this is inside a class.
>
> if i test the above line apart, in another script, outside any class, i
> get NO error.
>
> then, is that forbiden using such a variable "$_SERVER['DOCUMENT_ROOT'"
> inside a class ?
>
> the purpose of using it is to allow my script working on both ubuntu and
> Mac OS X.
You can only initialize a static to a literal. This is not a literal.
You can do it - you just need to do it in the constructor.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177326 is a reply to message #177325] |
Sat, 10 March 2012 19:07 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma: 0
|
Senior Member |
|
|
On 3/10/2012 2:06 PM, Jerry Stuckle wrote:
> On 3/10/2012 9:57 AM, Une Bévue wrote:
>> at line :
>> public static $JAR=$_SERVER['DOCUMENT_ROOT'] .
>> '/AB2Html/Builder/saxon9he.jar';
>>
>> i got the error :
>> Parse error: syntax error, unexpected T_VARIABLE
>>
>> this is inside a class.
>>
>> if i test the above line apart, in another script, outside any class, i
>> get NO error.
>>
>> then, is that forbiden using such a variable "$_SERVER['DOCUMENT_ROOT'"
>> inside a class ?
>>
>> the purpose of using it is to allow my script working on both ubuntu and
>> Mac OS X.
>
> You can only initialize a static to a literal. This is not a literal.
>
> You can do it - you just need to do it in the constructor.
>
I should say a literal or other constant.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177327 is a reply to message #177324] |
Sat, 10 March 2012 19:13 |
M. Strobel
Messages: 386 Registered: December 2011
Karma: 0
|
Senior Member |
|
|
Am 10.03.2012 19:35, schrieb Une Bévue:
> Le 10/03/2012 18:45, M. Strobel a écrit :
>> missing semicolon? in the line before.
>
> no, I did verify this point.
>
> in fact i comment out the faulty line and put after it :
>
> public static $JAR='/home/yt/Sites/AB2Html/Builder/saxon9he.jar';
> surprisingly the part giving the error, was,for me :
> $_SERVER['DOCUMENT_ROOT']
>
> in a class :
>
> <?php
>
> define('JAVA_BIN', '/usr/bin/java');
> define('SAXON9HE_JAR', $_SERVER['DOCUMENT_ROOT'] . '/AB2Html/Builder/saxon9he.jar');
>
> class XSLTSaxonProcessor {
> //public static $JAVA='/usr/bin/java';
> //public static $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
> //$JAR=$_SERVER['DOCUMENT_ROOT'] . '/AB2Html/Builder/saxon9he.jar';
this is the offending line
> // Parse error: syntax error, unexpected T_VARIABLE in
> /home/yt/Sites/AB2Html/Builder/xsltsaxonproc.php on line 5
> //public static $JAR='/home/yt/Sites/AB2Html/Builder/saxon9he.jar';
> public static $xsl;
> public static $xml;
> public static $params;
> public static $out;
>
> ...
>
Okay, I can see the error. I suppose it is a limitation of the direct variable
initialization, but I could not find any reference about it.
Put your init code in the constructor in this case.
/Str.
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177328 is a reply to message #177321] |
Sat, 10 March 2012 21:21 |
Umberto Salsi
Messages: 2 Registered: August 2011
Karma: 0
|
Junior Member |
|
|
Une Bévue <unbewusstsein(at)fai(dot)invalid> wrote:
> at line :
> public static $JAR=$_SERVER['DOCUMENT_ROOT'] .
> '/AB2Html/Builder/saxon9he.jar';
>
> i got the error :
> Parse error: syntax error, unexpected T_VARIABLE
The expression giving the initial value of a proprty must be statically
evaluable and must result to be NULL, FALSE, TRUE, int numbers and simple
operations with int (+ - * / % << >>), float numbers and simple operations with
float (+ - * /), string and string concatenation, other named constants
statically evaluable, or array() with keys and values that are static
expressions as well. Functions and variables like $_SERVER are not allowed
because can be evaluated only at runtime. This same limitation of the PHP
interpreter holds also for: class constants; function default values.
The official manual (http://www.php.net/manual/en/language.oop5.properties.php)
only states:
"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."
but now you know the full story.
Regards,
___
/_|_\ Umberto Salsi
\/_\/ www.icosaedro.it
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177329 is a reply to message #177327] |
Sun, 11 March 2012 07:33 |
Une Bvue
Messages: 30 Registered: March 2012
Karma: 0
|
Member |
|
|
Le 10/03/2012 20:13, M. Strobel a écrit :
> Okay, I can see the error. I suppose it is a limitation of the direct variable
> initialization, but I could not find any reference about it.
>
> Put your init code in the constructor in this case.
ok thanks, i'll try that !
|
|
|
Re: Parse error: syntax error, unexpected T_VARIABLE [message #177330 is a reply to message #177328] |
Sun, 11 March 2012 07:34 |
Une Bvue
Messages: 30 Registered: March 2012
Karma: 0
|
Member |
|
|
Le 10/03/2012 22:21, Umberto Salsi a écrit :
> The expression giving the initial value of a proprty must be statically
> evaluable and must result to be NULL, FALSE, TRUE, int numbers and simple
> operations with int (+ - * / %<< >>), float numbers and simple operations with
> float (+ - * /), string and string concatenation, other named constants
> statically evaluable, or array() with keys and values that are static
> expressions as well. Functions and variables like $_SERVER are not allowed
> because can be evaluated only at runtime. This same limitation of the PHP
> interpreter holds also for: class constants; function default values.
>
> The official manual (http://www.php.net/manual/en/language.oop5.properties.php)
> only states:
>
> "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."
>
> but now you know the full story.
ok fine, cristall clear ! thanks.
|
|
|