Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

include et require dans des objets

3 réponses
Avatar
speak.me
Bonjour à tous,

Je ne pense pas qu'il y ai de solution à mon problème mais je pose
quand même la question :
Je souhaite réduire mon code et le rendre plus lisible en mettant des
include_once pour des portions de code de mon script php (j'utilise
php 4.4.2). Le problème est que je suis dans un objet (class) et que
j'ai alors le message suivant : "Parse error: syntax error, unexpected
T_INCLUDE_ONCE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
in /tmp/test.php on line 190".

Mon objectif vous l'aurez compris est d'obtenir un truc du style :
Class Monobj {
function Monobj() {}
// Etape 1
include_once("step1.php");
// Etape 2
include_once("step2.php");
}

Sachant que les fichiers etapes contiennent facilement 200 lignes =>
mon code est plus clair... du moins pour cet objet :)

Quelqu'un aurait-il une solution ou un contournement possible ? Est-ce
que ca marcherait avec PHP5 ? autre ?

Merci d'avance à tous, ne serais-ce que pour avoir lu :)
En espérant pouvoir vous aider un jour...

FonsD

3 réponses

Avatar
Antoine

Bonjour à tous,


Bonjour,

"Parse error: syntax error, unexpected
T_INCLUDE_ONCE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
in /tmp/test.php on line 190".

Mon objectif vous l'aurez compris est d'obtenir un truc du style :
Class Monobj {
function Monobj() {}
// Etape 1
include_once("step1.php");
// Etape 2
include_once("step2.php");
}


Sans être totalement certain de ce que j'avance, il me semble comprendre
l'erreur affichée de la façon suivante : "Erreur de syntaxe, je n'attend
pas un include_once mais une fonction, une variable ou un crochet fermant."

Et si on regarde ton code, l'erreur affichée semble logique puisqu'on ne
peut trouver dans la déclaration d'un objet que des déclarations de
méthodes et de variables. Peut-être pourrais tu écrire ton objet de la
façon suivante :

Class Monobj {
function Monobj() {
//Code du constructeur
}

function etapeUne(){
// Etape 1
include_once("step1.php");
}

function etapeDeux(){
// Etape 2
include_once("step2.php");
}
}

en modifiant bien entendu le code des fichiers step1 et step2.php. Qu'en
penses-tu ?

FonsD


?

Antoine

Avatar
speak.me
On 22 août, 11:09, Antoine <To1ne** wrote:

...

Et si on regarde ton code, l'erreur affichée semble logique puisqu'on ne
peut trouver dans la déclaration d'un objet que des déclarations de
méthodes et de variables. Peut-être pourrais tu écrire ton objet de la
façon suivante :

Class Monobj {
function Monobj() {
//Code du constructeur
}

function etapeUne(){
// Etape 1
include_once("step1.php");
}

function etapeDeux(){
// Etape 2
include_once("step2.php");
}

}

en modifiant bien entendu le code des fichiers step1 et step2.php. Qu'en
penses-tu ?


C'est en effet une solution envisageable. La raison pour laquelle j'ai
procédé de cette façon est qu'une étape contient de 2 à n fonctions.
Ce sera en tout cas un moindre mal... merci pour ton aide !

Je reste ouvert à tout autre conseil.

a+
FonsD

Avatar
Mickael Wolff

Je reste ouvert à tout autre conseil.


Peut-être utiliser les capacités de ton éditeur de texte préféré. Il
existe, dans la plupart des outils, une option permettant de cacher des
blocs de code. Dans Vim, c'est l'instruction fold.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org