{$ Histogram {$ değer} + +} Perl ne demek?

2 Cevap php

Başlığında kodu için tüm değişmeze:

sub histogram { # Counts of elements in an array
  my %histogram = () ;
  foreach my $value (@_) {$histogram{$value}++}
  return (%histogram) ;
}

Ben PHP bir Perl betiği çevirmek için çalışıyorum ve ben (ben gerçekten Perl bir şey bilmiyorum ama deniyorum) onunla zorluklar yaşıyorum.

Peki nasıl bu {$histogram{$value}++} PHP içine koymak?

Teşekkürler!

2 Cevap

{$histogram{$value}++} bir blok tanımlar ve Perl bir bloğun son satırı bir sonlandırıcı noktalı virgül gerekmez, bu nedenle {$histogram{$value}++;} eşdeğerdir.

Şimdi PHP karma eşdeğer bir ilişkisel dizidir ve biz bu dizideki elemanları erişmek için [] kullanın:

$hash{$key} = $value;      // Perl
$ass_array[$key] = $value; // PHP

PHP eşdeğer bir işlevi gibi bir şey olurdu:

function histogram($array) {
    $histogram = array();
    foreach($array as $value) {
        $histogram[$value]++;   
    }
    return $histogram;
}
foreach my $value (@_) {$histogram{$value}++}

Bu tek bir satır çeşididir:

foreach my $value (@_) {
    $histogram{$value}++
}