Ben bir kez PHP ve Ruby belirli test koşulları ile eşleşti değişkenlerin farklı (: IsEmpty, isset, vb yani) nasıl idare arasındaki farklılıklar ile bir makale bulunamadı. Nasıl farklı?
PHP / empty
oldukça fazla Ruby eşdeğeri olarak aynı, empty?
Rails dizeleri için, blank?
yöntemi empty?
tercih edilir
# this is PHP
$bob = array(); # empty( $bob ) => true
$bob = array( "cat" ); # empty( $bob ) => false
$bob = null; # empty( $bob ) => true
$bob = "boo" # empty( $bob ) => false
$bob = ""; # empty( $bob ) => true
# this is Ruby
[].empty? # => true
[ "cat" ].empty? # => false
nil.empty? # => NoMethodError
"boo".empty? # => false
"".empty? # => true
PHP / isset has_key ile değiştirilebilir? Hash nesne için. Genel yerel değişken kullanımı için onlar kodunda başvurulan zaman Ruby sıfır olarak değişkenleri başlatır, böylece kontrol etmek için sadece kolay şey sıfır olsun ya da değil mi?
EDIT
Ayrıca, yerel değişkenler için isset
in PHP kullanımını çoğaltmak için defined?
anahtar kelime kullanabilirsiniz.
#PHP
isset($bob); # => false
$bob = "foo";
isset($bob); # => true
$bob = array();
isset($bob['cat']); # => false
$bob = array( 'cat' => 'bag' );
isset($bob['cat']); # => true
isset($bob['dog']); # => false
#Ruby
bob # => nil
defined?(bob) # => false
bob.nil? # => true
bob = "foo"
bob # => "foo"
bob.nil? # => "false"
bob = {}
bob.has_key? :cat # => false
bob = { :cat => 'bag' }
bob.has_key? :cat # => true
Dikkatli olmak için bir şey: PHP, boş bir dize veya sayısal 0 bir if
deyimi yanlış değerlendirecek. Ruby, sadece nil
ve false
if ifadesinde yanlış değerlendirmek. Bu iki boolean sorgulama yöntemleri eklenmesini gerektirir, blank?
ve zero?
. Bu yöntemler, raylar uygulamanın bir parçası olarak String sınıfı için karıştırılır. Bunlardan Solo sürümleri YÖNÜ bulunabilir.
Bu çok yaygın bir soru. Ruby ve PHP arasındaki önemli bir fark, PHP çok zayıf yazıldığında ise Yakut, (çoğunlukla) strongly typed olmasıdır.