У меня есть два класса в приложении PHP, B - расширение A, например. класса А имеет функцию, которая возвращает некоторые другие его свойства в виде массива SQL вставки запросов, напримерPHP, расширяющий свойства класса
Class A {
$property_a;
$property_b;
$property_c;
$property_d;
function queries() {
$queries = array();
$queries[] = "INSERT INTO xxx VALUES " . $this->property_a . ", " . $this->property_b";
$queries[] = "INSERT INTO yyy VALUES " . $this->property_b . ", " . $this->property_d";
}
}
Я хотел класса B, чтобы иметь такой же (идентичный) функцию, которая делает то же самое для свойства класса B, в то время как все еще сохраняя значения из класса А. идея заключается в том, что каждый запрос будет передан через конечной функции все в то же время, а именно:
$mysqli->query("START TRANSACTION");
foreach($queries as $query) {
if(!$mysqli($query)) {
$mysqli->rollback();
}
}
Если все ОК $ mysqli-> совершить() ;
Что было бы самым простым способом достичь этого? Любые советы и идеи. Спасибо!
+1 Доктрина скалы! –
Спасибо, Еще один вопрос. Возможно ли продлить этот процесс еще дальше? Например, чтобы иметь класс C, который может получить доступ к его родительской функции, а также ее родительскую функцию? Надеюсь, что имеет смысл lol – Dan
c :: queries() вызывает реализацию своего родителя (B :: queries()), которая вызывает родительский реализация (A :: queries()). A :: queries() возвращает массив, B :: queries() добавляет свои элементы и возвращает массив, C :: queries() добавляет его элементы и возвращает массив. Это может продолжаться вечно, если вам нравится ;-) – VolkerK