IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Namespace et typage des paramètres des fonctions [PHP 7]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut Namespace et typage des paramètres des fonctions
    Bonjour.
    J'ai un fichier de déclaration de classe dont les fonctions contiennent en entrée des paramètres typés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function MaFonction (string $maChaine , ...) {...}
    Le code fonctionne sans erreur.
    Lorsque je rajoute en début de fichier un namespace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    namespace src\mon_chemin;
    pour employer l'autoload, j'obtiens un
    PHP Catchable fatal error : Argument 1 passed to MaFonction must be an instance of src\mon_chemin\string, string given
    J'ai naïvement tenté de rajouter un mais string n'est pas une classe comme PDO et donc j'obtiens juste une modif du message d'erreur " ...must be an instance of string, string given".
    Pour l'instant, je ne réussis à employer le namespace qu'en dé-typant mes paramètres de fonctions.

    Quelqu'un a une idée ?
    Yves.

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Oui, c'est parce que tu essaies d'exécuter un code PHP 7.x avec PHP 5.x (>= 5.3).

  3. #3
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    J'ai précisé que mon code fonctionnait bien AVEC le typage des paramètres tant que je ne mets pas de namespace ...
    je suis en 7.2

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    le problème est ailleurs, je pense, parce que je type absolument toutes mes variables et j'utilise les espaces de noms depuis leur apparition sans avoir jamais rencontré ce problème.

  5. #5
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bon ... CosmoKnacki avait raison
    Pourtant php -v donnait :
    PHP 7.2.11 (cli) (built: Oct 10 2018 10:00:29) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    En désespoir de cause, j'ai fait un puis un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo systemctl restart httpd
    et les namespaces et les typehints string ont été acceptés sans erreur ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire passer des paramètres pour fonction d'upload
    Par adeltimple dans le forum Langage
    Réponses: 10
    Dernier message: 16/02/2009, 18h56
  2. Réponses: 4
    Dernier message: 01/10/2008, 11h37
  3. Passer des paramètres à une fonction dans before_filter
    Par abir84 dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 27/01/2008, 19h40
  4. Réponses: 2
    Dernier message: 21/07/2007, 01h12
  5. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo