[RESOLU][PHP] condition zarb ..
Dernière réponse : dans Programmation
Salut à tous IDN, j'ai un ptit script que j'ai fais y'a 5 minutes et demie :
Et j'aimerai rajouter une conditon mais c'est un peu zarb, je voudrai que si l'ouverture ne se fait pas, au lieu de dire Could not open, j'aimerai executer d'autres instructions .. Comment faire ?
Merci d'avance,
fclm
<?
$link = "<a href="http://www.biduleeee.com/" target="_blank">http://www.biduleeee.com/</a>";
$fh = &fopen($link, "r") or die("Could not open $link");
?>
Et j'aimerai rajouter une conditon mais c'est un peu zarb, je voudrai que si l'ouverture ne se fait pas, au lieu de dire Could not open, j'aimerai executer d'autres instructions .. Comment faire ?
Merci d'avance,
fclm
Autres pages sur : resolu php condition zarb
Lassé par la pub ? Créez un compte
fclm a dit :
Salut à tous IDN, j'ai un ptit script que j'ai fais y'a 5 minutes et demie :
<?
$link = "<a href="http://www.biduleeee.com/" target="_blank">http://www.biduleeee.com/</a>";
$fh = &fopen($link, "r") or die("Could not open $link");
?>
Et j'aimerai rajouter une conditon mais c'est un peu zarb, je voudrai que si l'ouverture ne se fait pas, au lieu de dire Could not open, j'aimerai executer d'autres instructions .. Comment faire ?
Merci d'avance,
fclm
<?
$link = "<a href="http://www.biduleeee.com/" target="_blank">http://www.biduleeee.com/</a>";
$fh = &fopen($link, "r");
if(!is_resource($fh)){
/**
* Tes instructions
*/
}
?>
Si j'ai bien compris ( http://www.php.net/is_resource )
coca25 a dit :
il n'y a pas besoin d'utiliser is_ressource (), un simple:
if (!$fh)
{
// ...
}
suffit.
alors moi je dit beurk, mauvaise pratique, à éviter, tout ça (faible typage, casting, consommation de ressource), mais c'est un vaste débat d'un autre niveau.
Sinon oui ça suffit mais ce n'est pas la bonne pratique
.
je vois pas en quoi ce n'est pas la bonne pratique, il n'y a aucun problème de cast:
la valeur de retour de fopen en cas d'échec:
Si l'ouverture échoue, la fonction retourne FALSE et une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte.
et une ressource est considérée comme "vrai":
Toutes les autres valeurs sont considérées comme vraies (TRUE) (y compris les ressources).
la valeur de retour de fopen en cas d'échec:
Citation :
Si l'ouverture échoue, la fonction retourne FALSE et une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte.
et une ressource est considérée comme "vrai":
Citation :
Toutes les autres valeurs sont considérées comme vraies (TRUE) (y compris les ressources).
coca25 a dit :
et une ressource est considérée comme "vrai":
Citation :
Toutes les autres valeurs sont considérées comme vraies (TRUE) (y compris les ressources).
Donc castée
mais tu as raison je suis plus royaliste que le roi (la doc)
Ceci dit, si tu agit sur cet élément en tant que ressource dans ta condition tu as plutot interet à etre certain que s'en est une et pas un string casté en booléen par php... Donc mauvaise pratique tout ça... Mais le débat est vaste
je disais qu'il n'y avait pas de problème de cast et non pas qu'il n'y avait pas de cast, mais le débat est vaste, tu as raison.
personnellement, je pars du principe que la base de php est qu'il n'y a pas de typage, il est déterminé à l'execution.
le if est exécuté après le fopen, il n'y a que 2 choix: (bool) FALSE ou (ressource), il n'y a pas de string casté en booléen et autre
là ou je serais complétement d'accord, c'est dans des langages basés sur les types tel que C par exemple, où on peut lire un %d sur du char.
personnellement, je pars du principe que la base de php est qu'il n'y a pas de typage, il est déterminé à l'execution.
le if est exécuté après le fopen, il n'y a que 2 choix: (bool) FALSE ou (ressource), il n'y a pas de string casté en booléen et autre
là ou je serais complétement d'accord, c'est dans des langages basés sur les types tel que C par exemple, où on peut lire un %d sur du char.
coca25 a dit :
je disais qu'il n'y avait pas de problème de cast et non pas qu'il n'y avait pas de cast, mais le débat est vaste, tu as raison.personnellement, je pars du principe que la base de php est qu'il n'y a pas de typage, il est déterminé à l'execution.
le if est exécuté après le fopen, il n'y a que 2 choix: (bool) FALSE ou (ressource), il n'y a pas de string casté en booléen et autre
là ou je serais complétement d'accord, c'est dans des langages basés sur les types tel que C par exemple, où on peut lire un %d sur du char.
Tout d'accord tout pareil
... Sauf :
quand tu développes dans un langage faiblement typé , meme si une ligne de code est sous une autre, tu ne peux pas savoir ou te menera la prochaine refactorisation.
C'est là ou les "bonnes pratiques" entrent en piste et te permettent de coder aujourd'hui sur une condition qui suit une déclaration et de prévoir le jour ou cette condition sera dans un objet métier au fond de ton framework et recevra une propriété statique de je ne sais quel pattern registry en argument
de même si je décide d'englober le fopen dans une méthode et de retourner comme réponse une ressource particulière pour signifier une erreur, le is_ressource() ne sera plus valable.
bref, tout ca pour dire (de mon point de vue), que php, c'est des instructions du genre:
bref, tout ca pour dire (de mon point de vue), que php, c'est des instructions du genre:
$db = @mysql_connect('localhost') or die('Erreur base: ' . mysql_error());
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumPhp condition avec
- ForumPhp update sous condition
- ForumCondition ajax php variable
- ForumCondition avec php
- ForumProbleme php et condition if
- ForumCss condition sur une class php
- ForumTest if a plusieurs condition en php
- solutionsPhp probleme sur condition if
- ForumInsere une image dans une condition php
- ForumCondition en php
- Voir plus