parse error, expecting `T_PAAMAYIM_NEKUDOTAYIM " erreur dans le activecollab modèle de classe
Je suis en train de travailler sur activecollab module personnalisé autorisations, et de recevoir ce message d'erreur lorsque vous essayez d'appeler la fonction de la méthode statique ne sais pas pourquoi; svp aider sera vraiment appericiatable ..
Parse error: parse error, expecting `T_PAAMAYIM_NEKUDOTAYIM' in D:\wamp\www\activecollab\public\activecollab.0.9\modules\projectcomrequest\models\Projectcomrequests.class.php on line 130
le code que j'ai fait dans le fichier de modèle est:
class Projectrequests extends DataManager {
...
....
function getPermissionValue($name){
$roles = Roles::find();
foreach($roles as $role) {
if($role->getPermissionValue($name))
return true;
else
return false;
}
static function canAccess() {
if(self::getPermissionValue('can_use_project_request')) return true;
return false;
} //canAccess
...
..
}
appel au contrôleur par la présente:
echo Projectrequests::canAccess();
qu'est-ce que la ligne 130
Je vois que vous êtes en utilisant
Parfait exemple de pourquoi bouclés-accolades ne doit jamais être omis pour les structures de contrôle. Vous n'êtes pas intelligent ou de ranger en les laissant. Voté pour fermer. Ou peut-être un dupe?
Je suis en désaccord, c'est un meilleur exemple de pourquoi vous devriez avoir des accolades sur la ligne suivante, plutôt qu'à la fin d'une ligne.
Où dois voir une fuite en accolade fermante dans son code? Tous ses
Je vois que vous êtes en utilisant
$this
à l'intérieur de la fonction statique canAccess()
, ce qui n'est pas permise, mais ne devrait pas provoquer cette erreurParfait exemple de pourquoi bouclés-accolades ne doit jamais être omis pour les structures de contrôle. Vous n'êtes pas intelligent ou de ranger en les laissant. Voté pour fermer. Ou peut-être un dupe?
Je suis en désaccord, c'est un meilleur exemple de pourquoi vous devriez avoir des accolades sur la ligne suivante, plutôt qu'à la fin d'une ligne.
Où dois voir une fuite en accolade fermante dans son code? Tous ses
}
sont sur leur propre ligne ou en silence-implicite (ce qui était l'objet de mon point de vue)OriginalL'auteur Shadman | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
Il vous manque une fermeture } il. Il devrait donc être:
Je ne suis qu'à la correction de l'erreur comme indiqué dans la question.
Est-il résoudre l'erreur, comme demandé par l'OP? 🙂 Je pense que oui.
son travail maintenant .. merci man !!
Pas de problème! Heureux vous avez obtenu un tri
OriginalL'auteur psynnott
Une méthode statique n'a pas de classe contexte
$this
que vous essayez d'appeler, dans la première ligne decanAccess()
. Vous devriez appelerself::
au lieu de$this->
pour accéder à la classe de contexte et ensuite, vous pouvez seulement appeler d'autres à champ statique et méthodes. Vous aurez à fairegetPermissionValue
aussi statique.Un peu plus d'erreurs:
{
dans votre foreach. Fixe pour vous (seulement retour véritable à l'intérieur de la boucle, le reste de la construction est inutile, car sinon votre foreach seulement les boucles une fois).getPermissionValue
danscanAccess
car il est une valeur booléenne de toute façon (si-sinon la construction est plutôt inutile).Code corrigé:
Je voudrais des conseils pour utiliser les modificateurs d'accès comme
public
etprivate
comme il est de bonne pratique.public
etprivate
ne sont pas nécessaires. Quand il est omis de déclaration de méthode,public
sera utilisé. Méthodes de marquage commestatic
sur l'autre main est encouragée, car PHP soulève avertissement (ou de l'avis, ne me souviens pas) lorsque la méthode qui n'est pas marqué comme statique est appelée de façon statique.Vrai, il n'est pas nécessaire, mais il est à mon avis une bonne pratique de le faire.
merci @Styxxy pour votre aide et vos suggestions ..
OriginalL'auteur Styxxy
Aussi, les méthodes statiques n'ont pas accès à
$this
vous devez utiliserself::
au lieu$this
àself::
.. et merci pour votre aide ..OriginalL'auteur Jim Rubenstein