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 :

DLL et Can't use method return value in write context


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut DLL et Can't use method return value in write context
    Bonjour,

    J'ai un projet VB.Net à migrer en PHP.
    J'utilise une DLL, et sur un objet, je lance, en VB cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ligne.delai(1) = "8 Jours"
    Ceci est fonctionnel en VB. Je ré-écris en php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ligne->delai(1) = "8 Jours"
    Et j'ai un "Can't use method return value in write context". Cela me semble assez logique (???), php n'acceptant pas d'écrire sur une méthode.

    Peut être une mauvaise traduction de ma part ? Mais ceci ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ligne->delai[1] = "8 Jours"
    Avez vous une idée de la bonne syntaxe php ?

    Merci.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Tu essayes de faire quoi ?

    Car ceci $ligne->delai() est une méthode.

    Tu peux passer des paramètres à une méthode , mais tu ne peux pas lui affecter une valeur (c'est une méthode pas un attribut).

    Il faudrait voir ta methode, mais je dirais que tu essayes de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ligne->delai(1, "8 Jours");

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Merci de te pencher sur mon cas.

    Il faut comprendre que "ligne" vient d'une DLL instanciée avec l'objet COM php. Je n'ai pas la main dessus.
    En VB.Net une propriété d'objet peut avoir une syntaxe avec des parenthèses, c'est pour cela que mon code VB fonctionne.

    Je suppose aussi que la DLL a été compilé dans cet esprit.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Tu peux montrer comme tu instancies ton objet ?

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Voici mon code VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Imports DelaiLibs
    Dim conn As New DelaiApp
    Dim ligne As Document = conn.CreateProcess()
    ligne.delai(1) = "8 Jours" 'Cette ligne est OK
    Et mon code php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $conn = new COM('delai.sender') or die('Erreur création COM');
    $ligne = $conn->CreateProcess();
    $ligne->delai(1) = "8 Jours"; // Cette ligne retourne Can't use method return value in write context
    Merci.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Que donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r(get_class_methods($ligne));

Discussions similaires

  1. [PHP 5.3] Erreur : "Can't use method return value in write context"
    Par FabaCoeur dans le forum Langage
    Réponses: 5
    Dernier message: 17/04/2012, 12h21
  2. Réponses: 1
    Dernier message: 24/03/2009, 15h42
  3. Can't call method "mail" on an undefined value
    Par pausg dans le forum Modules
    Réponses: 5
    Dernier message: 18/07/2008, 18h14
  4. Réponses: 1
    Dernier message: 17/01/2007, 18h10
  5. Can't call method "mail" on an undefined value
    Par hpalpha dans le forum Modules
    Réponses: 2
    Dernier message: 18/01/2006, 11h50

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