2011-07-04 3 views
0

Travail sur le développement de mon modèle Drupal 7 (7.4) personnalisé.Erreur de modèle personnalisé Drupal 7: Seules les variables peuvent être transmises par référence

Tout ce que je veux, c'est faire une place pour Block, nommé en-tête. Pour cela j'ai utilisé echo render($page['header']); mais je reçois une erreur.

Fatal error: Only variables can be passed by reference in C:\Program Files\wamp\www\drupal7\themes\mytemplate\html.tpl.php on line 88

Je n'arrive pas à déterminer où est le problème. J'ai trouvé quelqu'un disant que la version de PHP n'est pas correcte et des choses comme ça, mais je ne peux pas changer la version de PHP, en raison du type d'hébergement.

Pouvez-vous m'aider à résoudre ce problème?

+0

La version PHP n'est pas le problème. – kiamlaluno

+0

duplication possible de [PHP: seules les variables peuvent être transmises par référence] (http://stackoverflow.com/questions/17279695/php-only-variables-can-be-passed-by-reference) – kiamlaluno

Répondre

-1

render() est défini comme render(&$element).
Comme expliqué sur Passing by Reference, lorsqu'une fonction a besoin d'une référence en tant que paramètre, vous pouvez passer à la fonction:

  • variables (render($a))
  • nouvelles déclarations (render(new ElementArray()))
  • références retournées des fonctions (render(elements_to_render()) , où elements_to_render() est défini comme)

À remarquer que, dans le premier cas, en passant $a est différent de passer $page['header'].

+0

Je reçois quelqu'un par ici ne sait pas PHP. Eh bien ... – kiamlaluno

+0

'Fonction test_ref (& $ myvar) { return 'valeur:'. $ Myvar; } $ myarray = array (1, 2, 3); impression test_ref (myarray $ [0]); ' le code ci-dessus impressions: ' valeur 1' – mastazi

+0

(désolé pour la mise en forme horrible, les sauts de ligne ne sont pas autorisés dans les commentaires) – mastazi

-1

Je viens d'avoir la même erreur, j'ai changé la version de php et essayé d'autres choses .. Le problème était le fichier de modèle NAME. D'une manière ou d'une autre, j'ai renommé le template par défaut en page.tpl.php et tout a été corrigé. Le mot page de page.tpl.php fait référence à la variable $ page dans ce fichier.

+0

Si le nom du fichier de modèle est erroné, il serait ne pas être utilisé. Si le nom de fichier du template est correct, vous obtenez l'erreur, pour les raisons que j'ai expliquées. – kiamlaluno

Questions connexes