php function tamsayı parametre sorunu

4 Cevap
function is_zipcode_valid($zipcode){ ... }

if I call that function with is_zipcode_valid(08004); my parameter 08004 gets in as 8004, basically it removed all precending 0's.

Nasıl ben bu sorunun etrafında alabilirsiniz?

teşekkürler

4 Cevap

Bir dize olarak geçmesi ve bunun yerine bir dize beklemek için işlevini değiştirmek:

is_zipcode_valid('08004');

Bu tamsayılar kullanırken öndeki sıfırları korumak mümkün değildir. . Tamsayı değeri bir lider sıfır varsa, bu temel 8 yorumlanır İşte bir örnek:

echo 010; // Output is 8.

Önde gelen sıfır varsa PHP base8 numaraları gibi tamsayılar davranır. Bir string olarak numaranızı geçmek

Herkesin bir dize olarak geçmesine diyor.

php5 eğer o döküm gidiyveyadize emin olabilirsiniz

$zipcode = (string) $zipcode; 

veya

$zipcode = "$zipcode"; 




  function is_zipcode_valid( $zipcode){ 

   is_string($zipcode) //returns true
 }

Php.Net bakın

Not: Bunun yerine bir dize değişkeni döküm, çift tırnak içinde değişken içine de mümkündür.

/ / Sayı fonksiyonu posta kodu oluşturmak

    function form_zipcode($zipcode,$desiredLength){ 
              if(str_len($zipcode) != $desiredLength)
                  {
                       return str_pad($zipcode,$desiredLength,"0",STR_PAD_LEFT);
                  }
                else
                 {
                  return $zipcode;
                  }
       }

Form_zipcode kullanarak (55.5) "00055" dönecekti;

Üzgünüm yazım hatası son gece (burada GMT)

    <?php
echo form_zipcode("55",5);

function form_zipcode($zipcode,$desiredLength){ 
              if(strlen($zipcode) != $desiredLength)
                  {
                       return str_pad($zipcode,$desiredLength,"0",STR_PAD_LEFT);
                  }
                else
                 {
                  return $zipcode;
                  }
       }
 ?>

Works as expected returns 00055 That not what you require??