Errore apici e virgolette....

pollat

Utente Attivo
10 Ott 2013
63
0
6
Ho uno script php che mi da un errore di apici ma non riesco a capire il motivo, lo script è il seguente:

PHP:
class Elenco {
private static $root   = "cartellabase/$numerocartella/";
...


L'errore mi dice che non sono accettae le virgolette e vuole solo l'apice singolo
ma se mettessi l'apice singolo non verrebbe interpretata la variabile.

"Parse error: syntax error, unexpected '"' in /homepages/38/d517385344/htdocs/macroweb/elenco/utenti/index12.php on line 53"

Se al posto della variabile metto
il nome della cartella vero e propri, funziona correttamente e interpreta lòo script correttamente


Ho provato anche modificando lo script in:

PHP:
class Elenco {
private static $root   = 'cartellabase' . $numerocartella . '/';
...

ma così da un errore quando ariva al punto ossia.

"Parse error: syntax error, unexpected '.', expecting ',' or ';' in /homepages/38/d517385344/htdocs/macroweb/elenco/utenti/index12.php on line 53"

Qualcuno sa spiegarmi il motivo per cui non interpreta correttamente lo script nei due modi segnalati????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non ho mai visto dichiarare una proprietà in questo modo, non credo si possa fare .
prova a dare un occhiata qui o a cercare qualcosa di più specifico
Comunque non riesco a capire dove valorizzi la variabile numerocartella.
Dovresti scrivere qualcosa tipo questo
PHP:
class Elenco {

    private static $root;

    public function __construct($numerocartella) {
        self::$root = "cartellabase/" . $numerocartella . "/";
    }

}
per richiamare poi la classe in questo modo
PHP:
$elenco = new Elenco(2);
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
La variabile l'ho dichiarata prima della funzione, così....
PHP:
$numerocartella=12;

class Elenco {
private static $root   = "cartellabase/$numerocartella/";
...

ma non è che ho bisogno di variabili globali per richiamarle dentro una funzione???
Come faccio a dichiarare una variabile globale???
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
il problema che se dichiaro la variabile sopra la funzione, in realtà me la prende ma io ho una pagina in cui nell'head è dichiarata la variabile $numerocartella=12;
su tale pagina c'è un include() ad una pagina php con lo script che ho scritto sopra ossia:

PHP:
class Elenco {
private static $root   = "cartellabase/$numerocartella/";
...

ebbene la variabile non viene letta... Perché?
p.s. se la variabile la metto direttamente nella pagina dove c'è lo script (quella richiamta dal include) la legge bene.

Quindi: come faccio a far leggere al file include le variabili che dichiaro nella pagina dove ho messo l'include????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Li sei all'interno di una classe non di una funzione, non può leggere dati esterni se non glieli passi come ti ho mostrato nell'esempio.
edit
nemmeno una funzione può leggere delle variabili esterne se non le dichiari globali o se non gliele passi come parametro
 
Ultima modifica:

pollat

Utente Attivo
10 Ott 2013
63
0
6
Li sei all'interno di una classe non di una funzione, non può leggere dati esterni se non glieli passi come ti ho mostrato nell'esempio.
edit
nemmeno una funzione può leggere delle variabili esterne se non le dichiari globali o se non gliele passi come parametro

però se inserisco la variabile prima della classe questa viene letta normalmente...perchè?
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non so davvero come a te possa funzionare
PHP:
<?php

$numerocartella = 12;

class Elenco {

    private static $root;

    public function stampa() {
        echo $numerocartella;
    }

}

$elenco = new Elenco();

$elenco->stampa();
a me non stampa
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
Sorry ora mi riferivo ad un'altro script con una funzione dentro, non una classe... il seguente:

PHP:
 $numerocartella=13; // funzione dichiarata nella pagina dell'include, sotto c'è lo script dell'include

function access($attr, $path, $data, $volume) {
'path'          => "cartellabase/$numerocartella/",         // path to files (REQUIRED)
...

vale quello che dicevo ossia questo script viene richiamato da un include presente nella pagina dove ho dichiarato la variabile
ma non la legge. Se invece la variabile la inserisco prima della funzione direttamente nello script la legge normalmente.
Quindi, esiste un modo per far leggere al file include le variabili che dichiaro nella pagina dove ho messo l'include????
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi usare global
PHP:
<?php

$numerocartella = 13;
function access() {
    global $numerocartella;
    echo $numerocartella;
}
access();
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
all'interno della funzione come ti ho mostrato nell'esempio
 
Discussioni simili
Autore Titolo Forum Risposte Data
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
P Errore nell'indirizzo degli elementi HTML e CSS 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M errore dopo passaggio Php 7.2 PHP 6
S -> Errore PHP 8
S Errore "ftp_put(): Can't open that file: Permission denied" PHP 1
P Errore telecamere hdcvi dahua IP Cam e Videosorveglianza 16
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
F [PHP]Errore registrazione PHP 8
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
V [ORACLE] Errore ora-06512 at sys.utl_file Oracle 0
A [WordPress] Errore Plugin WordPress 0
P [WordPress] Messaggio di errore in file style.css WordPress 0
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
M [PHP] WS-Security errore PHP 0
E Errore configurazione 18 Dahua Dome POE IP Cam e Videosorveglianza 6
M [PHP] Errore di percorso, file not found PHP 3
MrSab [MySQL] Foreign key errore MySQL 5

Discussioni simili