Parse error php/MySql

Résolu/Fermé
ano - Modifié par ano le 17/01/2011 à 10:47
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 - 17 janv. 2011 à 11:51
Bonjour,

voici mon code qui me met parse error !
bool class_exists (string $Form_Input);
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
abstract class Form_Input extends Form_Field {

public function __construct($name, $form) {

parent::__construct($name, $form);
$this->attrs['type'] = 'text';
}

public function get_cleaned_value($value) {

$value = trim($value);
return parent::get_cleaned_value($value);
}

// abstract public function __toString($tab = '');
public function __toString()
{
$tab = '';
$o = $tab.'<form'.$this->attrs.'>'."\n";

if (empty($this->fieldsets)) {

$o .= $this->_html_fields($tab."\t", array_diff_key($this->fields, $this->hidden_fields, $this->submit_fields));
if (!empty($this->hidden_fields)) { $o .= $this->_html_hidden_fields($tab."\t", $this->hidden_fields); }
$o .= $this->_html_fields($tab."\t", $this->submit_fields);

} else {

$hidden_fields = $this->hidden_fields;
$submit_fields = $this->submit_fields;

foreach ($this->fieldsets as $legend => $fields) {

$o .= $this->_html_fieldset($tab, $legend, $fields);

foreach($fields as $f) {

unset($hidden_fields[$f], $submit_fields[$f]);
}
}
if (!empty($hidden_fields)) { $o .= $this->_html_hidden_fields($tab."\t", $hidden_fields); }
if (!empty($submit_fields)) { $o .= $this->_html_fields($tab."\t", $submit_fields); }
}
$o .= $tab.'</form>';
return $o;
}
}

en fait je veux vérifier si ma classe existe !

Merci de votre aide

9 réponses

line 511 : bool class_exists (string $Form_Input);
0
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
Modifié par Akronos le 17/01/2011 à 11:17
Le problème es que tu code comme en C.
Bien que le langage PhP ressemble au langage C il est COMPLÈTEMENT différent...
inutile de déclaré le type de tes variables.

bool class_exists (string $Form_Input);
||
V
class_exists ($Form_Input);
ou
$bool = class_exists ($Form_Input);
0
en effet ça marche déjà mieux, mais toujours une erreur :
Undefined variable: Form_Input
class_exists ($Form_Input);
0
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
17 janv. 2011 à 11:24
Ta variable $Form_Input n'est pas déclaré.

Je m'explique: class_exists vérifie si la classe est définie. $Form_Input doit donc correspondre au nom d'une de tes classes. Exemple: $Form_Input = 'MyClass';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup, cette erreur ne s'affiche plus !

c'est bien ce code qu'on doit mettre pour voir si une classe a déjà été déclarée ?
que doit-on faire quand "Cannot redeclare class Form_Input " s'affiche ?
0
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
Modifié par Akronos le 17/01/2011 à 11:34
Alors:
if (class_exists('MyClass'))  
{  
 $myclass = new MyClass();  
}   

Ce bout de code vérifie que ta classe est bien définie, elle existe, elle est inclus, bref si tout est ok, tu l'instancie.

Si tu as l'erreur:
Cannot redeclare class Form_Input

C'est que ta classe Form_Input est déclarée plusieurs fois. Il faut voir au niveau de tes requires/includes.

Pour inclure tes classes je ne peux que te conseiller d'utiliser require_once("Classe/MaClasse.php");

require à la différence d'include va émettre une erreur de compilation si le fichier n'existe pas, include se contente d'un warning.
le _once permet de n'inclure le fichier qu'une seule fois.

CF ici
0
Je te remercie pour tout ! ça fonctionne ! plus d'erreur à ce niveau la !
Merci =)
0
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
17 janv. 2011 à 11:46
De rien.

Oublie pas de marqué comme résolu.
0
Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
17 janv. 2011 à 10:58
Bonjour.
Il serai bien de nous donner la ligne ou le parse error est trouvé.

Ensuite, une vérification avec isset serait je pense approprié.

if (isset(class_exists('MyClass'))) 


-1
Akronos Messages postés 140 Date d'inscription jeudi 6 janvier 2011 Statut Membre Dernière intervention 31 janvier 2011 32
17 janv. 2011 à 11:51
Pourquoi utiliser isSet au fait?
class_exists envoie un booléen true/false...
0