我的cronjobs报告中有这个错误
PHP严格标准:在第28行的/home/admin/domains/DOMAIN.com/public_html/birthdate.php中从空值创建默认对象 严格标准:在第28行的/home/admin/domains/DOMAIN.com/public_html/birthdate.php中从空值创建默认对象
和我的代码:
28- $D->user_birthdate = array();
29- $latest_members_arr = $network->get_user_birthdate();
30- foreach($latest_members_arr as $usr)
40- {
41- $D->user_birthdate[] = $network->get_user_by_id($usr);
42- }
43- $num = 30;
44- $D->user_birthdate = array_slice($D->user_birthdate, 0, $num);
我该如何解决这个问题?
答案 0 :(得分:5)
在代码的顶部添加以下行。
$D = new stdClass();
$D->user_birthdate = array();
您收到错误,因为$D
不存在。您应该创建一个新的StdClass对象。 stdClass是php的通用空类。 Read more。
假设您的$ D对象具有特定类型(对象类型),请确保使用它。 EG:
$D = new dClass();
此处$D
是类dClass()
答案 1 :(得分:2)
可能$ D为空? 改为使用数组:
$birth_dates = array();
$latest_members_arr = $network->get_user_birthdate();
foreach($latest_members_arr as $usr)
{
birth_dates[] = $network->get_user_by_id($usr);
}
或者,如果$ D为null,请考虑使用标准类,将其添加到代码顶部:
if (empty($D)) {
$D = new stdClass();
}
答案 2 :(得分:1)
$D
未定义。必须先使用new
关键字(或从先前实例化的对象复制)将其设置为某个值,然后才能分配值。