【发布时间】:2018-10-21 23:40:20
【问题描述】:
我正在学习 PHP,但遇到了一个新问题。如果您能提供帮助,我将不胜感激。
我的代码:
$idTrack = (new Track_Obj)->getIdtCommon($a,$b);
Class Track_Obj{
function __construct( $idtakip, $env = false ) {...}
function getIdtCommon( $idref, $idstudent, $env = false) {...}
}
错误:
未捕获的 ArgumentCountError:函数 Track_Obj::__construct() 的参数太少,传入 0,PHP7.1 中至少需要 1 个
【问题讨论】:
-
$a 不能为空
-
创建Track_Obj类的对象时必须传递$idtakip
-
另外,$a 不是空的,它是示例值,你认为像 $a=1。
-
@ jakub wrona 你可以这样说:$idTrack = (new Track_Obj($idtakip))->getIdtCommon($a,$b); ?但我不使用它 $idtakip
-
解释一下,
(new Track_Obj)或更实际的new Track_Obj()调用Track_Obj构造函数。该构造函数有一个必需参数 ($idtakip) 和一个可选参数 ($env)。您需要为$idtakip提供至少一个参数,例如new Track_Obj($something)。我不建议在创建类实例时省略括号,因为它只会使代码难以阅读,即new Something;❌ vsnew Something();✔️