2016-08-18 5 views
1

私はPHPのOOPでの初心者ですが、私は次のように国と呼ばれるクラスを作成している:私は "致命的なエラー:定義されていない関数getCountries()"をPHP oopで呼び出すのを続けるのはなぜですか?

countries.php

class countries { 
    public $countries = array("Afghanistan","Hong Kong","Moldova","Malawi"); 

    public function getCountries() { 
     return $countries; 
    } 
} 

test.phpを

require_once('/lbs/countries.php'); 
$country = new countries(); 

print_r($country->{getCountries()}); 
+1

を私の推測):) –

+2

なぜメソッド '{getCountries()}'の周りに中括弧がありますか? –

+0

getCountries()を定義する本当の方法は何ですか? :) – Hassan

答えて

3

だけ$this->を使用し、それを変更します静的関数または変数を呼び出さない場合。あなたの状況では$this->

public function getCountries() { 
    return $this->countries; 
} 

で配列の値を取得するともせずにクラスから関数を呼び出す - `getCountriesは()`もそれはです(定義されていないため、例えば、{中括弧} $class->function_name();

print_r($country->getCountries()); 
+4

クラス内の関数をメソッドと呼びます。 –

関連する問題