PHP'nin belgelerine biraz seyrek ve son örneği bana kafa karıştırıcıNeden "echo strcmp ('60 ',' 100 ');" php çıkışı 5? Bu fonksiyon üzerindeki
echo strcmp('hello', 'hello');
//outputs 0 as expected - strings are equal.
echo '<hr />';
echo strcmp('Hello', 'hello');
//outputs -32, a negative number is expected as
//uppercase H has a lower ASCII value than lowercase h.
echo '<hr />';
echo strcmp('60', '100');
//outputs 5.
... Bu fonksiyon ASCII değerlerini karşılaştırır okudum böylece var. Neden pozitif bir sayı çıkardığını anlamıyorum. 60 '' arasında 6 = 54
toplam ASCII değerinin 0 = 48
1 ASCII Değerinin
- ASCII Değeri = (54 + 48) = '100' = (49 + + 48 48) = 145
strcmp 102
kimse neden açıklayabilir '60'
daha büyük olduğu görülmektedir rağmen '100' den "büyük" olduğunu Aying?Teşekkür
Bunun garantili bir davranış olmadığını unutmayın - garanti edilen tek şey, bu giriş parametreleri için değerin sıfırdan büyük olmasıdır. –
@SimonRichter: Garanti edilmediğinden emin olun. Ama bu * geleneksel *. 1978'de yazdığım bazı kodlar, bu geri dönüş değeri hesaplamaya dayanıyor * hala çalışıyor *! – wallyk
@wallyk, dokümantasyon ilk karakterin farkını döndürdüğünü söylemediğinde bu cevabın doğru olduğunu nereden biliyorsunuz? – Pacerier