好吧,我的模型中有一个函数getDaysTotal
说估计.php。
如果在我看来.php如果我使用
echo $model->DaysTotal;
我得到值 3。但如果我再做一次
echo $model->DaysTotal;
现在我得到 1。任何想法,为什么我会这样。这发生在估计.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;
}
你的 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);
此处使用了辅助变量,没有任何对象状态修改。
有趣的是
,你得到了任何东西,因为"echo $var"可能是一个非对象。
<?php
$a = 6;
echo $a -> b;
?>
PHP Notice: Trying to get property of non-object.
在PHP中,右箭头"->"用于访问对象的组成部分,在PHP中,它类似于Java和C家族等语言中的"::"或谦卑的"."。
如果没有更多的上下文,就不可能说出你的情况下到底发生了什么,但也许"->"上的这个页面会对你有所帮助。
如果这不能给你你需要的东西,这里有一个通用的PHP记事卡