Я действительно смущен тем, почему эта операция работает. Может ли кто-нибудь объяснить это?
$test1 = "d85d1d81b25614a3504a3d5601a9cb2e";
$test2 = "3581169b064f71be1630b321d3ca318f";
if ($test1 == 0)
echo "Test 1 is Equal!?";
if ($test2 == 0)
echo "Test 2 is Equal!?";
// Returns: Test 1 is Equal!?
Для пояснения, я пытаюсь сравнить строку "0"
с переменными $test
. Я уже знаю, как исправить код, который я могу просто заключить (как и следовало) 0
в ""
s
Мне интересно, является ли это ошибкой PHP, ошибкой сервера или каким-то образом допустимой операцией. Согласно http://us3.php.net/types.comparisons это не должно сработало.
Редактировать: Сотрите это, по-видимому, в нем упоминается, что свободные сравнения между строкой и 0 верны. Но я до сих пор не знаю, почему.
Редактировать 2: я пересмотрел свой вопрос, почему значение $test2
для "3581169b064f71be1630b321d3ca318f"
не работает?
Test 1 is Equal!?
- person St. John Johnson   schedule 23.03.2009$test1 + 0
и$test2 + 0
дала бы ключ к пониманию того, что происходит. Или, альтернативно, значения+$test1
и+$test2
(с использованием оператора идентификации). - person ToolmakerSteve   schedule 14.08.2020