Public static valeur de la variable
Je suis en train de déclarer un public statique de la variable est un tableau de tableaux:
class Foo{
public static $contexts = array(
'a' => array(
'aa' => something('aa'),
'bb' => something('bb'),
),
'b' => array(
'aa' => something('aa'),
'bb' => something('bb'),
),
);
//methods here
}
function something($s){
return ...
}
Mais j'obtiens une erreur:
Parse error: Parse error, expecting
` ) " ...
Qu'est-ce que
c'est une fonction normale.. elle est déclarée à l'extérieur de la classe. la variable est déclarée comme une propriété de classe
", a déclaré à l'extérieur de la classe"? Peut-on voir d'où ce morceau de code est avec le reste de la classe?
"À l'extérieur". "Des propriétés de la classe." Qui est-il? S'il vous plaît montrer plus de code complet.
Je veux dire que la fonction est déclarée à l'extérieur, la variable est public static ... à l'intérieur de la classe. J'ai édité mon q pour le rendre plus clair
something()
? Aussi, est-ce déclarées comme un établissement de classe (public static $contexts
) ou quelque part dans une méthode?c'est une fonction normale.. elle est déclarée à l'extérieur de la classe. la variable est déclarée comme une propriété de classe
", a déclaré à l'extérieur de la classe"? Peut-on voir d'où ce morceau de code est avec le reste de la classe?
"À l'extérieur". "Des propriétés de la classe." Qui est-il? S'il vous plaît montrer plus de code complet.
Je veux dire que la fonction est déclarée à l'extérieur, la variable est public static ... à l'intérieur de la classe. J'ai édité mon q pour le rendre plus clair
OriginalL'auteur Alex | 2011-06-28
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser des expressions lors de la déclaration des propriétés de la classe. I. e. vous ne pouvez pas appeler
something()
ici, vous pouvez uniquement utiliser des valeurs statiques. Vous aurez à définir ces valeurs différemment dans le code à un certain point.Par exemple:
Ou le faire
__construct
si vous allez à instancier la classe.Les valeurs initiales des propriétés de la classe sont créés alors que le code source est analysé. À ce point, le mémoire doit être réservé à ceux initiale de valeurs de classe, car ils doivent être stockées quelque part. Cela se produit avant que le code est exécuté. Vous ne pouvez pas réserver de la mémoire pour la valeur de retour d'une fonction, mais, depuis une fonction peut retourner quoi que ce soit. Et depuis l'analyse n'est pas terminé, les fonctions ne peuvent pas être exécuté. Ainsi, tandis que la analyse le code, seules les valeurs statiques de taille connue sont autorisés. Une fonction est (explicitement) invoquée plus tard au moment de l'exécution et peut retourner quoi que ce soit.
OriginalL'auteur deceze