我的模型中有一个函数getDaysTotal
说是estimate.php。
如果在我的view.php中,如果我使用
echo $model->DaysTotal;
我得到了值3.但是如果我再做一次
echo $model->DaysTotal;
现在我得到1.任何想法,为什么我这样得到它。 这发生在estimate.php中的任何函数中。 如果我第二次使用它,结果很奇怪。
我在这里做错了吗?我怎么能纠正这个? 感谢。
以下是getTotalDays
功能的代码:
public function getDaysTotal() {
$this->discharge_date = strtotime($this->discharge_date);
$this->admission_date = strtotime($this->admission_date);
$datediff = ($this->discharge_date - $this->admission_date);
$fraction_days = ($datediff/(60*60*24));
if ($fraction_days < 1){
return 1;
}elseif(($datediff)%(60*60*24) < 10800){
$option2 = floor($datediff/(60*60*24));
return $option2;
}elseif(($datediff%86400) > 10800 && ($datediff%86400)<21600) {
$option3 = ceil($datediff/(60*60*24)*2)/2;
return $option3;
}elseif (($datediff%86400) >21600){
$option4= ceil($datediff/86400);
return $option4;
}
答案 0 :(得分:3)
你的getter改变你的对象:
public function getDaysTotal() {
$this->discharge_date = strtotime($this->discharge_date);
$this->admission_date = strtotime($this->admission_date);
你不应该这样做。在下一次呼叫时strtotime(int)
为两行返回false。
尝试遵循:
public function getDaysTotal() {
$discharge_date = strtotime($this->discharge_date);
$admission_date = strtotime($this->admission_date);
$datediff = ($discharge_date - $admission_date);
此处使用了辅助变量,没有任何对象状态修改。
答案 1 :(得分:0)
很有趣的是你得到了什么,因为“echo $ var”可能是一个非对象。
<?php
$a = 6;
echo $a -> b;
?>
PHP Notice: Trying to get property of non-object.
在PHP中右箭头“ - &gt;”用于访问对象的组成部分,在php中它类似于“::”或简陋的“。”在java和C系列等语言中。
没有更多上下文,无法确定您的具体情况,但this page on the "->" 可能对您有所帮助。
如果那不能满足你的需要,那就是general PHP note card