Re: Using Logical OR operator in IF statement???
| From: | Brad Melendy | Date: | Sun, 21 Oct 2001 19:41:17 +0000 |
| Subject: | Re: Using Logical OR operator in IF statement??? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-71753@lists.php.net to get a copy of this message | ||
Thanks James,
I tried a regular expression comparison first, but it was eluding me. I'm
new to PHP (trying to convert form ASP) and part of this is me trying to
convert my ASP/VBSCRIPT to PHP. ;-) I actually have a FOR loop evaluated
when the conditions of the IF statement are met, and I suspect that is
messing things up. Here's my entire code and I've used your expression
comparison instead but it still fails to find the "-" unless I split things
up and check either ONLY for the '-' at the beginning or the end, but not
both in the same line:
function StringCheck($sString)
{
if (preg_match("/^-|-$/s", $sString))
{
for ( $counter=0; $counter < strlen($sString); $counter++ )
{
$nChar = ord(strtolower(substr($sString, $counter, 1)));
if (($nChar > 47 And $nChar < 58) or ($nChar > 96 And $nChar < 123) or
($nChar == 45))
{
$result = TRUE;
}
else
{
$result = FALSE;
break;
}
}
}
else
{
$result = FALSE;
}
return $result;
} //End Function StringCheck
Maybe you see something I don't. I can't get over the fact that if I check
for just the front, or the end, it works, but if I check for both the front
and end of the string in the same line with the OR, it fails. :-\ Thanks
in advance for any thing you might notice.
....Brad
"Yz James" <liljim@btconnect.com> wrote in message
news:20011021191217.77327.qmail@pb1.pair.com...
> Hi Brad,
>
> This worked for me:
>
> <?
>
> if ((substr($sString, 0, (strlen($sString)-1) == "-")) ||
(substr($sString,
> 0, 1) == "-")) {
> echo "you can't have a dash at the beginning or end of your string.";
> }
>
> ?>
>
> ...... but I'd tend to go for a regex as a solution to what you're after,
> which involves less code:
>
> <?
>
> if (preg_match("/^-|-$/s", $string)) {
> echo "You cannot have a \"-\" character at the beginning or end of your
> string.";
> } else {
> echo "Whatever....";
> }
>
> ?>
>
> Just my thoughts...
>
> James
>
> "Brad Melendy" <brad@techkno.com> wrote in message
> news:20011021060945.16311.qmail@pb1.pair.com...
> > Hello,
> > Ok, this works:
> >
> > if (substr($sString,(strlen($sString)-1)!="-")) {
> > print "You can't have a dash at the end of your string.";
> > }
> >
> > and this works:
> > if (substr($sString,0,1)!="-") {
> > print "You can't have a dash at the beginning of your string.";
> > }
> >
> > But, this doesn't work for any case:
> > if ((substr($sString,(strlen($sString)-1)!="-")) or
> > (substr($sString,0,1)!="-")) {
> > print "you can't have a dash at the beginning or end of your string.";
> > }
> >
> > What could be wrong? I've used a logical OR operator in the middle of
an
> IF
> > statement like this before, but for some reason, this just isn't
working.
> > Anyone got any ideas? I suppose I can just evaluate this with two
> different
> > IF statements, but it seems like I shoud be able to do it in one and
> reduce
> > duplicate code. Thanks very much in advance.
> >
> > .....Brad
> >
> >
> >
>
>