【发布时间】:2019-08-11 05:08:43
【问题描述】:
我遇到以下警告:
严格标准:FGLU_Activity::delete() 的声明应与...中的 FGLU_Entity::delete($id, $commit = true) 兼容
FGLU_Activity 扩展了 FGLU_Entity 并且不覆盖静态 ::delete 方法。
关于下次遇到此错误时如何避免此错误的任何提示?
<?php
class FGLU_Entity {
/*
* ...
*/
static function delete($id,$commit=true) {
global $wpdb;
// first, delete any rows in mapped tables
$total_count = 0;
if ($commit) $wpdb->query("START TRANSACTION");
$instance = new static::$class_name();
$instance->{static::$key} = $id;
/*
* ...
*/
// then, delete the base row
$needles = array("xa_table","xa_key","xa_id");
$threads = array(static::$table,static::$key,$id);
$sql = fglu_sql(FGLU_SQL_DELETE,$needles,$threads);
$row_count = $wpdb->query($sql);
if ($row_count === false) {
fglu_setError(__METHOD__,"SQL Error<br/>$sql<br/>$wpdb->last_error");
if ($commit) $wpdb->query("ROLLBACK");
return false;
} else {
if ($commit) $wpdb->query("COMMIT");
$total_count += $row_count;
return $total_count;
}
}
/**/
}
class FGLU_Activity extends FGLU_Entity {
// Keys
public $activity_id;
// Required Attributes
public $name;
public $short;
public $activity_cd;
public $display_order;
public $private = 0;
public $school_visit = 0;
public $report = 0;
public $capacity = 0;
// System Attributes
public $id_user;
public $dt_updated;
/*
* ...
*/
}
?>
【问题讨论】:
-
向我们展示这两个类的代码?
-
将其添加到问题中,而不是作为评论
-
child
delete方法会删除什么?也许它需要$id作为参数也? -
类中的大部分代码我都省略了,但重点是在child中没有定义静态delete方法。它只是从基类继承而来。代码有效(记录被删除),但当 PHP 以严格标准执行时会引发警告。
-
在这个类中还有其他名为
delete的符号吗?
标签: php class standards strict implements