|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2009-01-17 18:40 UTC] johannes@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Dec 03 17:00:01 2025 UTC |
Description: ------------ Brazil - Portugu?s N?o realiza a igualdade. Tenho um array serializado que busco na sess?o, quando realizo uma compara??o de um nodo do array com uma string est? retornando como se fosse igual, mas n?o s?o iguais (==). O valor do array ? 0 (zero) do tipo integer, e quando fa?o uma compara??o (==) com uma string retorna true. Se fa?o a compara??o com inteiro realiza corretamente a valida??o. Se eu realizo um trim() no array e fa?o a igualdade, ai realiza corretamente. Fiz um strlen() no array e o tamanho ? 1. Se fa?o igualdade (===) a compara??o est? certa. Reproduce code: --------------- //array vindo da session, unserialize($_SESSION['menu']) Array ( [menu_2008311143334693] => Array ( [ordenador] => 0 [id] => 2008311143334693 [parentId] => 2008311143334693 [label] => Relat?rios [action] => [help] => [imagem] => [filhos] => Array ( .... echo strlen($menuPermissaoUser['menu_2008311143334693']['ordenador']).'<br>'; echo gettype($menuPermissaoUser['menu_2008311143334693']['ordenador']).'<br>'; echo $menuPermissaoUser['menu_2008311143334693']['ordenador'].'<br>'; if($menuPermissaoUser['menu_2008311143334693']['ordenador'] == 'qualquer coisa') echo'IGUAL<br>'; if(trim($menuPermissaoUser['menu_2008311143334693']['ordenador']) == 'qualquer coisa') echo 'IGUAL<br>'; else echo 'NAO IGUAL<br>'; if($menuPermissaoUser['menu_2008311143334693']['ordenador'] === 'qualquer coisa') echo 'IGUAL<br>'; else echo 'NAO IGUAL<br>'; Expected result: ---------------- 1 integer 0 NAO IGUAL NAO IGUAL NAO IGUAL Actual result: -------------- 1 integer 0 IGUAL NAO IGUAL NAO IGUAL