Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

différence entre 'categories' et "categories"

5 réponses
Avatar
unbewusst.sein
Je viens de m'apercevoir qu'il y aurait une différence entre
'categories' et "categories".

J'ai un tableau $tables qui vaut :
Array ( [0] => categories [1] => items )

Ce sont les TABLEs d'une base de données.

si je fais :
in_array('categories', $tables);
me retourne FALSE

tandis que
in_array("categories", $tables);

que je mette $strict à true ou pas...

--
« La preuve que le pape ne connaît rien à l'utilisation du
préservatif, c'est qu'il l'a mis à l'index. »
(André Santini)

5 réponses

Avatar
Olivier Miakinen
Bonjour,

Le 23/11/2011 11:55, Une Bévue a écrit :

Je viens de m'apercevoir qu'il y aurait une différence entre
'categories' et "categories".



Ce n'est pas possible, il doit y avoir un bug quelque part que tu
n'as pas vu.

J'ai un tableau $tables qui vaut :
Array ( [0] => categories [1] => items )



Je suppose qu'en réalité il s'agit de 'categories' (ou
"categories") et 'items' (ou "items"), Mais bien sûr
print_r n'affiche pas de guillemets.

Ce sont les TABLEs d'une base de données.

si je fais :
in_array('categories', $tables);
me retourne FALSE

tandis que
in_array("categories", $tables);


... te retourne TRUE je suppose.

que je mette $strict à true ou pas...



C'est normal que le paramètre $strict ne change rien. Mais ce n'est
pas normal que 'categories' soit différent de "categories".

À vérifier :
- que tu écris bien 'categories' et "categories" respectivement,
sans espace, ni BOM, ni accent, ni majuscule ;
- is_string($tables[0]) ;
- ($tables[0] == "categories") ;
- ($tables[0] === "categories") ;
- ($tables[0] == 'categories') ;
- ($tables[0] === 'categories') ;
- ("categories" == 'categories') ;
- ("categories" === 'categories') ...

Tu nous tiens au courant ?
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:

Tu nous tiens au courant ?



oui, oui, je vérifie ça, en fait le 'caregories' vient d'une requête
sqlite3 qui me retourne le nom des tables dans ma base.

je regarde ça dans 1H ...
--
« La preuve que le pape ne connaît rien à l'utilisation du
préservatif, c'est qu'il l'a mis à l'index. »
(André Santini)
Avatar
unbewusst.sein
Une Bévue wrote:

je regarde ça dans 1H ...



Bon pour l'instant, je ne parviens plus à reproduire car le script :
<?php
header('Content-type: text/html; charset = utf-8');
$db = new SQLite3('cli.db');
$tables = array();

$sql = "SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY
name;";
$ret = $db->query($sql);
if($ret){
while ($row = $ret->fetchArray()){
$name = $row['name'];
$tables[] = $name;
echo "<h5>TABLE name: '$name' exists!</h5>";
}
}

echo "<h5>in_array("categories", $tables, true) ".in_array("categories", $tables, true)."</h5>";

echo "<h5>in_array('categories', $tables, true) ".in_array('categories', $tables, true)."</h5>";

echo "<h5>in_array("items", $tables, true) = ".in_array("items",
$tables, true)."</h5>";

echo "<h5>in_array('items', $tables, true) = ".in_array('items',
$tables, true)."</h5>";

?>

Me retourne qqc de tout à fait correct :
TABLE name: 'categories' exists!

TABLE name: 'items' exists!

in_array("categories", Array, true) = 1

in_array('categories', Array, true) = 1

in_array("items", Array, true) = 1

in_array('items', Array, true) = 1

bon il faut que j'y regarde de plus près, voir en arrière ce qui a bien
pu se passer...
--
« La preuve que le pape ne connaît rien à l'utilisation du
préservatif, c'est qu'il l'a mis à l'index. »
(André Santini)
Avatar
Olivier Miakinen
Le 24/11/2011 09:43, Une Bévue a écrit :

bon il faut que j'y regarde de plus près, voir en arrière ce qui a bien
pu se passer...



Je parie pour un truc bête, du genre de « 'caregories' » au lieu de
« 'categories' », comme dans ton article précédent. ;-)
Avatar
Une Bévue
On 24/11/2011 17:15, Olivier Miakinen wrote:
Je parie pour un truc bête, du genre de « 'caregories' » au lieu de
« 'categories' », comme dans ton article précédent.;-)


possible que ce ne soit qu'une typo...