Po pierwsze, upewnij się, że include
plik klasy przed użyciem go:
include_once 'path/to/tpl_functions.php';
Należy to zrobić albo w index.php lub na szczycie klasy, która używa tpl_function
. Zwróć także uwagę na możliwość wykonania następujących klas: autoloading
:
Od PHP5 musisz mieć możliwość automatycznego ładowania klas. Oznacza to, że rejestrujesz funkcję przechwytującą, która jest wywoływana za każdym razem, gdy próbujesz użyć klasy, której plik kodu nie został jeszcze zawarty. Nie musisz mieć instrukcji include_once
w każdym pliku klasy. Nadchodzi przykład:
index.php lub dowolnej aplikacji punkt wejścia:
spl_autoload_register('autoloader');
function autoloader($classname) {
include_once 'path/to/class.files/' . $classname . '.php';
}
Od teraz można uzyskać dostęp do klas bez martwić się o tym już pliki kodu. Spróbuj go:
$process = new process();
Wiedząc o tym, istnieje kilka sposobów, w jaki sposób można użyć klasy template_functions
Wystarczy używać go:
można otworzyć klasę w dowolna część kodu, jeśli utworzysz instancję:
class process
{
//all process with system and db
public function doSomethging() {
// create instance and use it
$tplFunctions = new template_functions();
$tplFunctions->doSomethingElse();
}
}
członkowie przykład:
Weź klasę procesowego na przykład. Aby uczynić template_functions dostępny wewnątrz klasy process
, należy utworzyć element instancji i zainicjować go gdzieś, gdzie jest to potrzebne, konstruktor wydaje się być dobrym miejscem:
//CMS System class
class process
{
//all process with system and db
// declare instance var
protected tplFunctions;
public function __construct() {
$this->tplFunctions = new template_functions;
}
// use the member :
public function doSomething() {
$this->tplFunctions->doSomething();
}
public function doSomethingElse() {
$this->tplFunctions->doSomethingElse();
}
}
Jestem mylić o co to zamieszanie ... – raidenace
brzmi jak chcesz wielokrotnego dziedziczenia, tak że cont_output rozciąga się zarówno cont_stacks I template_functions? ponieważ w przeciwnym razie nie ma powodu, dla którego klasa nr 1 nie mogłaby wywołać metody statycznej lub utworzyć egzemplarza klasy 2 w sobie. –
@MarcB Jest to rodzaj, ale zależy tylko, jak mogę korzystać z mojej własnej klasy dostępnej w obu klasach. –