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.