Php 调用方法时如何解决错误实例?

Php 调用方法时如何解决错误实例?,php,Php,我有一个常数类。如何确保actionWithParams()将获得当前的类常量?现在我得到了“实例”错误: 您传递的是一个整数,而不是MyClass的实例 MyClass::PARAM_1是一个整数,这就是传递给actionWithParam()的内容。因为您已经暗示了该方法,所以它要求它的参数是MyClass类的“实例”,而整数显然不是。只要去掉那个“MyClass”的暗示,你就不应该再犯那个错误了 但我们必须要问——为什么要将类常量传递给该类中的方法?传递的是整数,而不是MyClass的实例

我有一个常数类。如何确保actionWithParams()将获得当前的类常量?现在我得到了“实例”错误:


您传递的是一个整数,而不是
MyClass
的实例

MyClass::PARAM_1
是一个整数,这就是传递给
actionWithParam()
的内容。因为您已经暗示了该方法,所以它要求它的参数是MyClass类的“实例”,而整数显然不是。只要去掉那个“MyClass”的暗示,你就不应该再犯那个错误了


但我们必须要问——为什么要将类常量传递给该类中的方法?

传递的是整数,而不是
MyClass
的实例

MyClass::PARAM_1
是一个整数,这就是传递给
actionWithParam()
的内容。因为您已经暗示了该方法,所以它要求它的参数是MyClass类的“实例”,而整数显然不是。只要去掉那个“MyClass”的暗示,你就不应该再犯那个错误了


但是,有人必须问——为什么要将类常量传递给该类中的方法?

方法定义类型提示如下参数:

 public function actionWithParam(MyClass $param){
这意味着
$param
必须是MyClass的一个实例,但您传递的是一个整数
MyClass::param_1
。只需删除typehint:

public function actionWithParam($param){
或者,您可以键入一个整数参数:

public function actionWithParam(int $param){
此外,您可能不想这样做:

$obj = $obj->actionWithParam(MyClass::PARAM_1);

这将用方法返回的任何值覆盖
$obj
对象实例。

方法定义类型提示如下参数:

 public function actionWithParam(MyClass $param){
这意味着
$param
必须是MyClass的一个实例,但您传递的是一个整数
MyClass::param_1
。只需删除typehint:

public function actionWithParam($param){
或者,您可以键入一个整数参数:

public function actionWithParam(int $param){
此外,您可能不想这样做:

$obj = $obj->actionWithParam(MyClass::PARAM_1);

这将用该方法返回的任何值覆盖您的
$obj
对象实例。

您不能。另外
MyClass$param
意味着
$params
必须是class
MyClass
的对象。您不能。另外,
MyClass$param
意味着
$params
必须是class
MyClass
的对象。人们必须问,为什么要将class常量传递给该类中的方法?这很常见,为什么要将它们定义为全局常量
PDO::FETCH_ASSOC
和许多其他工具。我知道删除的typeHint会起作用。我想也许有一种方法可以指明需要使用哪些类常量。但我们必须问——为什么要将类常量传递给该类中的方法?这很常见,为什么要将它们定义为全局常量
PDO::FETCH_ASSOC
和许多其他工具。我知道删除的typeHint会起作用。我想也许有办法指明需要使用哪些类常量。