|
| Array used as boolean Fra : Jimmy |
Dato : 18-03-04 08:54 |
|
Hej
Jeg har følgende kode:
$Data = mysql_query ("SHOW TABLES");
while (list ($Table) = mysql_fetch_row ($Data))
{
}
Zend Development Environment siger følgende under analyse:
array() construct is used in boolean context even though it is meaningless
Catery: Bug
Men hvordan skal jeg så skrive ovenstående kode? (Som altså virker fint nok)
Mvh
JImmy
| |
Nezar Nielsen (18-03-2004)
| Kommentar Fra : Nezar Nielsen |
Dato : 18-03-04 12:58 |
|
Jimmy wrote:
> $Data = mysql_query ("SHOW TABLES");
> while (list ($Table) = mysql_fetch_row ($Data))
Hvorfor ikke bare bruge mysql_fetch_array ?
while($Table = mysql_fetch_array($Data)){
....
}
> Zend Development Environment siger følgende under analyse:
>
> array() construct is used in boolean context even though it is meaningless
> Catery: Bug
Sikkert fordi list() ikke returnerer noget.
--
Mvh. Nezar Nielsen
http://fez.dk/
(n)osse hovede på sigt.
| |
Jimmy (18-03-2004)
| Kommentar Fra : Jimmy |
Dato : 18-03-04 15:14 |
|
"Nezar Nielsen" <tumpen@fez.dk> wrote in message
news:c3c2nb$259khu$1@ID-179598.news.uni-berlin.de...
> Jimmy wrote:
> > $Data = mysql_query ("SHOW TABLES");
> > while (list ($Table) = mysql_fetch_row ($Data))
>
> Hvorfor ikke bare bruge mysql_fetch_array ?
Jeg kan godt lide eksplicit at få populeret variablerne.
Spørgsmålet var nu også af teoretisk karakter.
> > array() construct is used in boolean context even though it is
meaningless
> > Catery: Bug
>
> Sikkert fordi list() ikke returnerer noget.
Ikke helt forstået - list() returnerer ikke noget, men den populerer da
variablerne i dens parameterliste?
Mvh
Jimmy
| |
Jakob Braad (18-03-2004)
| Kommentar Fra : Jakob Braad |
Dato : 18-03-04 15:34 |
|
> Ikke helt forstået - list() returnerer ikke noget, men den populerer da
> variablerne i dens parameterliste?
>
Ja, men while skal jo bruge en boolean værdi og den returnerer list IKKE.
| |
Jimmy (18-03-2004)
| Kommentar Fra : Jimmy |
Dato : 18-03-04 21:39 |
|
"Jakob Braad" <jakob@jbraad.dk> wrote in message
news:c3cc0h$1t0p$1@news.cybercity.dk...
> > Ikke helt forstået - list() returnerer ikke noget, men den populerer da
> > variablerne i dens parameterliste?
> >
>
> Ja, men while skal jo bruge en boolean værdi og den returnerer list IKKE.
Der røg den ind - den er void. Tak.
Mvh
Jimmy
| |
Nezar Nielsen (18-03-2004)
| Kommentar Fra : Nezar Nielsen |
Dato : 18-03-04 17:09 |
|
Jimmy wrote:
>
> Jeg kan godt lide eksplicit at få populeret variablerne.
adrk - men dig om det ;)
>>Sikkert fordi list() ikke returnerer noget.
>
>
> Ikke helt forstået - list() returnerer ikke noget, men den populerer da
> variablerne i dens parameterliste?
tjah, og det virker jo også, siger du, så problemet er vel at ZDE *tror*
at det er list()'s resultat der bliver checket for true/false af while,
selvom det er tildelingen - hvilket returnerer true.
--
Mvh. Nezar Nielsen
http://fez.dk
| |
Jimmy (18-03-2004)
| Kommentar Fra : Jimmy |
Dato : 18-03-04 21:42 |
|
"Nezar Nielsen" <tumpen@fez.dk> wrote in message
news:c3chdq$261os2$1@ID-179598.news.uni-berlin.de...
> Jimmy wrote:
> >>Sikkert fordi list() ikke returnerer noget.
> >
> >
> > Ikke helt forstået - list() returnerer ikke noget, men den populerer da
> > variablerne i dens parameterliste?
>
> tjah, og det virker jo også, siger du, så problemet er vel at ZDE *tror*
> at det er list()'s resultat der bliver checket for true/false af while,
> selvom det er tildelingen - hvilket returnerer true.
Her er et eksempel fra php.net's beskrivelse af list()
Example 2. An example use of list()
$result = mysql_query("SELECT id, name, salary FROM employees",
$conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
echo " <tr>\n" .
Helt i skoven kan det så ikke være.
Men i virkeligheden er det enten fordi php er meget lidt restriktivt og
tager alt som ikke er 0 eller False som en True værdi, at det virker eller
som du beskriver ovenfor.
Om ikke andet lærte jeg også noget i dag, så det var super.
Tak for hjælpen,
Jimmy
| |
|
|