Class 使用新参数再次调用php类函数
我调用函数时遇到问题 $categ->categ_body() 这是第二次参数没有改变Class 使用新参数再次调用php类函数,class,Class,我调用函数时遇到问题 $categ->categ_body() 这是第二次参数没有改变 $categ = new Categories("Autos & Vehicles"); $categ->categ_body(60*60*24); $adm_json_arr["a_v_num_last_24_h_videos"] = $categ->body_vid_num; // last 7 days $categ->categ_body(60*60*24*7); $a
$categ = new Categories("Autos & Vehicles");
$categ->categ_body(60*60*24);
$adm_json_arr["a_v_num_last_24_h_videos"] = $categ->body_vid_num;
// last 7 days
$categ->categ_body(60*60*24*7);
$adm_json_arr["a_v_num_last_7_d_videos"] = $categ->body_vid_num;
当我调用要更改参数的函数时,是否需要这样做,或者我必须再次调用该类
function categ_body($time){
require $_SERVER["DOCUMENT_ROOT"] . '/include/database/connect_cnt.php';
$time2 = time() - ($time *2);
$this->time = $time;
$time = time() - $time;
$stmt = $conn->prepare("SELECT COUNT(Id) AS Id_count FROM video WHERE Category = '" .$this->categ.
"' AND Published = '1' AND Date > '" .$time. "'");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ctg_last_videos);
$stmt->fetch();
$this->body_vid_num = number_format($ctg_last_videos);
}
所有的问题都与$time参数有关,该参数保持不变
60*60*24
而且不会变为
60*60*24*7
你在categ_body()函数中做什么 您需要在该函数中设置body\u vid\u num。您可以尝试
$adm_json_arr["a_v_num_last_24_h_videos"] = $categ->categ_body(60*60*24);
$adm_json_arr["a_v_num_last_7_d_videos"] = $categ->categ_body(60*60*24*7);
有一个像“接受者”和“接受者”这样的东西:
class Categories{
public $body_vid_num;
public function setBodyVidNum($num){
// some process or logic
...
$this->body_vid_num = $some_value;
}
public function getBodyVidNum(){
return $this->body_vid_num;
}
}
然后像这样使用它:
$categ->setBodyVidNum(60*60*24);
$adm_json_arr["a_v_num_last_24_h_videos"] = $categ->getBodyVidNum();
// last 7 days
$categ->setBodyVidNum(60*60*24*7);
$adm_json_arr["a_v_num_last_7_d_videos"] = $categ->getBodyVidNum();
我首先更改categ_body()函数,以接收mysql日期子间隔文本,而不是秒数。然后,我将修改查询以利用它。然后,为了只调用一次,我将返回分配给类变量的值
function categ_body($time = '24 HOUR'){
require $_SERVER["DOCUMENT_ROOT"] . '/include/database/connect_cnt.php';
$stmt = $conn->prepare("SELECT COUNT(Id) AS Id_count FROM video WHERE Category = '" .$this->categ.
"' AND Published = '1' AND Date > UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL {$time}))");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ctg_last_videos);
$stmt->fetch();
$this->body_vid_num = number_format($ctg_last_videos);
return number_format($ctg_last_videos);
}
现在,只需调用函数一次并传入正确的参数:
// No need to pass in a param here, since we set the default value of time
// to '24 HOUR'
$adm_json_arr["a_v_num_last_24_h_videos"] = $categ->setBodyVidNum();
$adm_json_arr["a_v_num_last_7_d_videos"] = $categ->setBodyVidNum('7 DAY');
从setter返回一个值不是一件正常的事情,但也不完全是一件坏事。如果你觉得你更喜欢传统风格,你可以:
// No need to pass in a param here, since we set the default value of time
// to '24 HOUR'
$categ->setBodyVidNum();
$adm_json_arr["a_v_num_last_24_h_videos"] = $categ->getBodyVidNum();
$categ->setBodyVidNum('7 DAY');
$adm_json_arr["a_v_num_last_7_d_videos"] = $categ->getBodyVidNum();
请编辑您的帖子并包含类别类的代码。如果我们不知道什么代码在
categ\u body()