Wat doet ik fout in onderstaande..

if (!$db_uitaan == "")
{
blabla uitvoeren.
}
Ik wil dat wanneer $db_uitaan ongelijk is aan leeg
blabla uitvoeren!

Maar zo werkt het niet..
Help! weten jullie wat ik fout doe
Wat voor waarde geef je $db_uitaan?

1/0
true/false

Als het 1 van deze waardes is dan gaat dit goed:

<?
if( isset($db_uitaan) && $db_uitaan )
{
// $db_uitaan is geset (ongelijk aan null) en
// $db_uitaan is true,1,niet '', "" of array() (geen lege string of array)
}
?>
if ($db_uitaan != "")
{
blabla uitvoeren.
}

i.p.v.

if (!$db_uitaan == "")
{
blabla uitvoeren.
}
if(!(empty($db_uitstaan)))
{
uitvoeren
}

kan zo toch ook?
@Jonathan:

De expressies zijn gelijk aan elkaar.

@niels:

Dat is idd een hele goeie en gelijk aan mijn oplossing. Die extra haken hoeven er niet omheen trouwens.
Martijn! schreef op 01.07.2006 12:30
@Jonathan:

De expressies zijn gelijk aan elkaar.


Dat is niet waar.

!= is iets anders dan !==

En wat !(iets == nogiets) doet is weer wat anders.

Maar goed even ontoppic:
hier: http://nl3.php.net/manual/nl/language.operators.comparison.php
staat alles een beetje uitgelegd als het om vergelijkingen gaat. Verder wordt een vergelijk met een lege string "" meestal vervangen door [php]empty[/php]()
@Boaz:

Waar zie jij "!==" staan?

Ik het het over $db_uitaan != "" is gelijk aan !$db_uitaan == "".
Martijn! schreef op 01.07.2006 15:12
Ik het het over $db_uitaan != "" is gelijk aan !$db_uitaan == "".

En volgens mij is het toch niet exact hetzelfde.

Want:
$db_uitaan != "" ($db_uitaan is NOT gelijk aan "")
!$db_uitaan == "" (NOT($db_uitaan) is gelijk aan "")
SanThe schreef op 01.07.2006 15:30
[quote=Martijn! schreef op 01.07.2006 15:12]Ik het het over $db_uitaan != "" is gelijk aan !$db_uitaan == "".

En volgens mij is het toch niet exact hetzelfde.

Want:
$db_uitaan != "" ($db_uitaan is NOT gelijk aan "")
!$db_uitaan == "" (NOT($db_uitaan) is gelijk aan "")[/quote]

idd er is een verschil, er gebeurt een extra bewerking in het 2e geval, true => false of omgekeerd. Maar het resultaat is wel het zelfde
Volgens mij is het:
!$db_uitaan == "" ( NOT($db_uitaan == "") )

Maar ik gebruik altijd !=

edit:

Ik heb maar ff een test scriptje gemaakt:

<?php
error_reporting(E_ALL);

$a = array('', 0, -1, array(), 'x', null);

foreach( $a as $k => $x )
{
echo 'Key ' . $k . ': ';

if( $x != "" )
echo '1';

if( !$x == "" )
echo '2';

if( !($x == "") )
echo '3';

if( !($x) == "" )
echo '4';

echo '<br />';
}
?>

Resultaat:

Key 0:
Key 1:
Key 2: 1234
Key 3: 13
Key 4: 1234
Key 5: 


1 en 3 lijken gelijk aan elkaar.
1 en 2 dus niet ;(
Hmm, wel interessant, pakt:
!$x == ""
niet de omgekeerde van $x?
en
!($x == "")
het omgekeerde van de vergelijking $x == ""?

Reageren