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 :

Fonction qui renvoie un boolean


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 485
    Points : 875
    Points
    875
    Par défaut Fonction qui renvoie un boolean
    Bonjour à tous,

    je ne comprends pas pourquoi la fonction ci-dessous ne renvoie pas ce que je veux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function element_exists($conn,$db,$dim,$element)
    {
    	// subset definition
    	$tfilter=palo_tfilter(array($element),FALSE);
    	$sort=palo_sort(1,0,NULL,0,NULL,0,1);
    	$subsetsize = palo_subsetsize($conn,$db,$dim,1,NULL,NULL,NULL,NULL,$tfilter,$sort);
    	if ($subsetsize==0)
    	{
    		return false;
    	}
    	else
    	{
    		return true;
    	}
     	//return $subsetsize;
    }
    lorsque le résultat est vrai, il me renvoie 1, "rien" sinon...
    la variable $subsetsize contient pourtant bien 1 ou 0...

    comment puis-je renvoyer un booléen ?

    D'avance merci !

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if ($subsetsize==0)
    	{
    		return false;
    	}
    	else
    	{
    		return true;
    	}
    peut se résumer à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $subsetsize == 0

  3. #3
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 485
    Points : 875
    Points
    875
    Par défaut
    Bonjour Benjamin et merci pour ta réponse !

    effectivement j'ai fait la modif (c'est plus clair ainsi)

    cependant il continue à me renvoyer soit 1 soit vide... est-ce qu'il est possible qu'il renvoie "true" ou "false" ?

    merci,

    EDIT: ok alors en fait je suis à coté de la plaque: la fonction renvoie déjà true ou false, c'est juste que ca n'écrit pas "true" ou "false". lorsque j'écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$ret=element_exists($connection, $db,'Regions','sdlfj');
    	if ($ret)
    	{
    		echo "oui";
    	}
    	else
    	{
    		echo "non";
    	}
    il me renvoie le bon résultat...

    merci pour l''aide (et le dérangement éventuel)

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Fait un var_dump du résultat pour vérifier son type. Une expression booléenne renvoie toujours un booléen, c'est impossible que tu récupères autre chose en retour que true ou false. Après, suivant comment tu l'utilise ou affiche, ça pourra être casté en entier (0 ou 1).

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tiens d'ailleurs je me suis trompé, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (boolean)palo_subsetsize($conn,$db,$dim,1,NULL,NULL,NULL,NULL,$tfilter,$sort);
    qu'il faut mettre (dans mon exemple précédent, ça renvoyait true sir subsetsize était à 0, c'est pas franchement ce qu'on attends).

    Si on part du principe que palo_subsetsize renvoie un entier, alors on peut directement le convertir en booléen et le renvoyer.

    Bon courage pour ton rubiks cube de données

  6. #6
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 485
    Points : 875
    Points
    875
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Fait un var_dump du résultat pour vérifier son type.
    effectivement ca me renvoie bien (bool)false. Donc si je comprends bien, il faut caster le résulat en entier pour renvoyer 0 ou 1 (pas moyen d'afficher true ou false ? mais d'un autre coté ca m'indiffère puisque ce n'est pas le but de l'afficher, sauf pour débugger)

    Citation Envoyé par Benjamin Delespierre Voir le message
    Bon courage pour ton rubiks cube de données
    hé hé merci, mais le vrai rubiks cube avec toutes les couleurs est bien plus compliqué ;-)

  7. #7
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Donc si je comprends bien, il faut caster le résulat en entier pour renvoyer 0 ou 1
    En gros oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $true  = true;
    $false = false;
     
    echo "true: $true false: $false"; // affiche 'true: 1 false:'
    echo "true: " . (string)$true . " false: " . (string)$false; // identique (le cas précédent était un cast implicite)
    echo "true: " . (int)$true . " false: " . (int)$false; // affiche 'true: 1 false: 0' (cast explicite en entier)
     
    // pour afficher true / false en toutes lettres
    echo "true: " . ($true ? "true":"false") . " false: " . ($false ? "true":"false"); // affiche 'true: true false: false'

  8. #8
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 485
    Points : 875
    Points
    875
    Par défaut
    j'ai tout compris.

    merci beaucoup !

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

Discussions similaires

  1. Fonction qui renvoie un tableau?
    Par elm dans le forum C
    Réponses: 23
    Dernier message: 21/12/2005, 12h44
  2. Réponses: 31
    Dernier message: 25/10/2005, 18h26
  3. Fonction qui renvoie erreur dans mon état
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 20/10/2005, 12h40
  4. [bioinfo] fonction qui renvoie chaîne à autre fonction
    Par perlaud dans le forum Bioinformatique
    Réponses: 11
    Dernier message: 16/07/2004, 15h06
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

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