Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: string(1) "3" vs string(16) "3"
Forum PHP.pl > Forum > PHP
bajmar
mam dwa stringi których nie da się porównać, tu i tu jest ASCII
jak to sprowadzić do tego samego typu?

  1. string(1) "3"
  2. string(16) "3"
morthan
Witam,

mam nadzieję, że to nie jest prowokacja. Jak nie to zacznijmy od początku:
- komputer nie rozumie literek, dla niego sa to nadal liczby
- komputer rozumie liczby zapisane w kodzie binarnym
- porównywanie liczb jest zawsze szybsze od porównywania napisów
- stringi porównujesz w wypadku kiedy nie ma inne możliwości.

Rozwiazaniem twojego problemu jest kod:

  1. if( (int)$zmienna1 === (int)$zmienna2 ):
  2. return TRUE;
  3. else:
  4. return FALSE;
  5. endif;


Mam ndzieję ze to Ci pomoże.
W razie problemów pisz.
Damonsson
@up Robisz sobie jaja z gościa, czy jak?


Sprawdź czy na pewno masz to samo kodowanie
$string = iconv('ASCII', 'UTF-8//IGNORE', $string);

Usuń niewidoczne znaki dla stringów
trim($string )

jak to nie pomoże, to się dalej pomyśli.
markuz
W drugim stringu masz białe znaki/html. Wejdź w źródło i się przekonasz, że tam siedzi jakiś div czy coś takiego.
bajmar
problem rozwiązała funkcja "rtrim"
aniolekx
Cytat(bajmar @ 16.10.2014, 11:56:49 ) *
problem rozwiązała funkcja "rtrim"


bezpieczniejsza będzie

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.