PHP Quebec
http://www.phpquebec.com
PHP.net
PHP Québec
Mission
L'équipe
Nos projets
Contact
Ressources
Forum
Recherche

Advanced Search
Qui est en ligne
15 user(s) are online (10 user(s) are browsing Forum)

Members: 0
Guests: 15

more...

Browsing this Thread:   1 Anonymous Users





erreur HEREDOC sur serveur 1and1.com
Nouveau
Joined:
2004/6/11 10:16
Group:
Utilisateurs Enregistrés
Posts: 1
Level : 1; EXP : 0
HP : 0 / 0
MP : 0 / 0
Offline
J'ai une question pour les pros ...

J'utilise la synthaxe "heredoc" courrament et je viens de
tomber sur un serveur qui génère une erreur quand j'insère une valeur provenant d'une fonction de "codeIgniter"
{$this->lang->line("app_kw_lang_en")}.
Ce n'est pas une varibale, certe, mais les différants serveur ou j'ai installé des solutions maison
ne se sont jamais plein ... Et si je remplace ce style par des print ou des echo "standard" ca va.
Alors, ma question,
quel élément de configuration ( PHP ou APACHE ) peu causer cette restriction ?

erreur généré :
Parse error: syntax error, unexpected '(', expecting '}' in /homepages/10/d310938803/htdocs/system/application/views/admin/catalog_home.php on line 56

fragement de code de la ligne 56 :

print <<


  • {$this->lang->line('app_kw_lang_en')}




  • {$this->lang->line('app_kw_lang_fr')}


    CODE;



    merci

    Posted on: 12/15 9:58
    Transfer the post to other applications Transfer


    Re: erreur HEREDOC sur serveur 1and1.com
    Nouveau
    Joined:
    2008/9/1 10:35
    From Montréal
    Group:
    Utilisateurs Enregistrés
    Posts: 26
    Level : 3; EXP : 83
    HP : 0 / 70
    MP : 8 / 418
    Offline
    __"Ce n'est pas une varibale, certe, mais les différants serveur ou j'ai installé des solutions maison ne se sont jamais plaint"__

    vraiment ? quelqu'un confirme ?
    je croyais que ce n'était pas possible
    je cite php.net :

    "Note: Les appels aux fonctions, méthodes, variables statiques de classes, ainsi qu'aux constantes de classes à l'intérieur de {$} fonctionnent depuis PHP 5. Cependant, la valeur accédée sera interprétée comme le nom d'une variable dans le scope duquel la chaîne est définie. L'utilisation de simples accolades ({}) ne fonctionnera pas pour accéder à la valeur retournée par les fonctions, méthodes ou les valeurs des constantes et des variables statiques de classes. "

    autrement dit - il me semblait que - l'on ne peut pas utiliser le retour d'une fonction autrement que comme une... variable. un exemple ?



    function test( $string ){
    return $string;
    }


    $foo = 'test';



    $chaine =<<
    ---------------------------------

    ne marche pas : {test('tata')}

    marche {$foo('tata')}



    EOT;


    echo $chaine;

    je serais curieux d'en apprendre plus là dessus... tiens nous au courant.


    Posted on: 12/15 13:53
    Transfer the post to other applications Transfer


    Re: erreur HEREDOC sur serveur 1and1.com
    Nouveau
    Joined:
    2008/11/17 13:22
    Group:
    Utilisateurs Enregistrés
    Posts: 8
    Level : 1; EXP : 73
    HP : 0 / 18
    MP : 2 / 97
    Offline
    J'ai essayé le code ci-dessous avec PHP 5.2.11-2 (debian sid) et je n'ai pas eu de problème.

    Je regarderait plutôt la version de PHP. C'est soit un problème de version, soit un caractère non-imprimable qui est détecté (par exemple un caractère UTF-8 nonbreakspace)

    <?php
    class lang {
        function 
    line($a) {
            return 
    "[" $a "]";
        }
    }
    class 
    {
        private 
    $lang null;
        function 
    __construct() {
            
    $this->lang = new lang();
        }
        function 
    blabla() {
            
    $str_class_eng '';
            
    $str_href_eng '';
            
    $str_class_fra '';
            
    $str_href_fra '';
    print <<<CODE
    <li>
    <a 
    {$str_class_eng} {$str_href_eng}>
    {$this->lang->line('app_kw_lang_en')}
    </a>
    </li>
    <li
    {$str_class_fra}>
    <a
    {$str_class_fra} {$str_href_fra}>
    {$this->lang->line('app_kw_lang_fr')}
    </a>
    </li>
    CODE;
        }
    }

    $a = new a();
    $a->blabla();
    ?>

    Posted on: 12/16 16:49
    Transfer the post to other applications Transfer






    You can view topic.
    You cannot start a new topic.
    You cannot reply to posts.
    You cannot edit your posts.
    You cannot delete your posts.
    You cannot add new polls.
    You cannot vote in polls.
    You cannot attach files to posts.
    You cannot post without approval.

    [Advanced Search]


    Evènements à venir
      10th Sep
    ConFooBeer
      11th Sep
    Barbecue ConFoo/PHP Quebec
    Connexion
    Username:

    Password:


    Lost Password?

    Register now!
    Canal IRC
    Venez nous voir sur notre canal IRC avec votre client favori :

    irc.phpquebec.org
    canal : #phpquebec
    Membre de
    Hébergé par
    Nexen Services