2016-03-04 9 views
5

ho il seguente codice:?

<?php$selectbox->display();?> 

, che non è troppo bello, ma funziona bene su Ubuntu PHP 7.0.3-1+deb.sury.org~vivid+1 (mod_php)

On il mio uberspace con PHP 7.0.3 (fcgi) ottengo l'errore

mod_fcgid: stderr: PHP Parse error: syntax error, 
    unexpected '$selectbox' (T_VARIABLE) 

Perché potrebbe essere?

Basta chiedere per curiosità - la correzione in sé è semplice, naturalmente.

+3

'spazio problema quindi dovrebbe essere: - display();?> ' –

+2

Credo che OP sappia qual è il problema ma mi sta chiedendo perché il parser si comporta Vior è diverso in questi due casi. –

+0

https://bugs.php.net/bug.php?id=69433&edit=3 e http://stackoverflow.com/questions/12761351/preg-match-all-behaves-differently-on-different-servers –

risposta

3

Il problema non è dovuto a sistemi diversi. Dipende dalla configurazione di php nel file php.ini. In questo caso dipende dal tag short_open.

Forse short_open è impostato On in php.ini a uberspace, quindi dopo <? sarà considerato come inizia php e prendere il php (dopo <?) costante. Pertanto genererà un errore per $selectbox. Puoi provare con il debug successivo per confermare che si tratta di un problema reale di short_open.

1) Impostare short_open su Off. In cambio php.ini seguente riga

short_open_tag = On 

a

short_open_tag = Off 

2) Oppure, Rimuovere php dopo <? Se non si desidera modificare la configurazione di PHP

<?$selectbox->display();?> 
Problemi correlati