私はあなたの指導が必要ですが、それは非常に基本的な質問かもしれませんが、私はgoogleの検索の多くの後でもこれを把握できませんでした。私はEurekaクラスを介して他のクラスの変数にアクセスできますが、その関数はアクセスできませんでした。第1クラスの外側のオブジェクトから2番目のクラスの関数をPHPで呼び出す
これは私の場合です:
<?php
class Eureka
{
public $some_var1;
public function get_all_settings()
{
echo 'get_all_settings was called from Eureka class.';
}
}
?>
:index.phpの
<?php
function __autoload($class_name)
{
//$class_name = strtolower($class_name);
$path = "{$class_name}.php";
if (file_exists($path)) {
include ($path);
} else {
die("{$path} file could not be found!<br />");
}
}
?>
基底クラスで
クラスのオートロード機能、Iは、HTMLページでこのクラスのオブジェクトを使用して、他のすべてのクラスにアクセスしたいです
timezone.phpのタイムゾーンクラス
<?php
class TimeZone
{
public $some_var2;
public function get_time_zone()
{
echo 'get_time_zone was called from TimeZone class.';
}
}
?>
location.phpで3210の
Locationクラス
<?php
class Location
{
public $some_var3;
public function set_location($location_name)
{
echo 'set_location was called from Location class.';
}
}
?>
htmlページのindex.phpを
<?php
$eureka = new Eureka;
//**How can I achieve this ????**
$eureka->TimeZone->get_time_zone();
//**OR**
$eureka->Location->set_location('some_location_name');
?>
例えば$ eurekaオブジェクトが 'TimeZone'クラスを呼び出すと、ロードされ、 'get_time_zone()'メソッドがエラーなく呼び出されます。
新しいタイムゾーンや場所のインスタンスを作成し、プロパティとして保存するユーレカクラスのコンストラクタを変更します....'public function __construct(){$ this-> TimeZone = new TimeZone();} $ this-> Location =新しい場所(); } ' –
それはどのように動作し、その依存性注入ではないです。 [__get](http://php.net/manual/en/language.oop5.magic.php)を実装することができますが、それは間違っています。 –
また、魔法の '__get()'メソッドを使うこともできます –