Php 调用方法时如何解决错误实例?
我有一个常数类。如何确保actionWithParams()将获得当前的类常量?现在我得到了“实例”错误:Php 调用方法时如何解决错误实例?,php,Php,我有一个常数类。如何确保actionWithParams()将获得当前的类常量?现在我得到了“实例”错误: 您传递的是一个整数,而不是MyClass的实例 MyClass::PARAM_1是一个整数,这就是传递给actionWithParam()的内容。因为您已经暗示了该方法,所以它要求它的参数是MyClass类的“实例”,而整数显然不是。只要去掉那个“MyClass”的暗示,你就不应该再犯那个错误了 但我们必须要问——为什么要将类常量传递给该类中的方法?传递的是整数,而不是MyClass的实例
您传递的是一个整数,而不是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
必须是classMyClass
的对象。您不能。另外,MyClass$param
意味着$params
必须是classMyClass
的对象。人们必须问,为什么要将class常量传递给该类中的方法?这很常见,为什么要将它们定义为全局常量PDO::FETCH_ASSOC
和许多其他工具。我知道删除的typeHint会起作用。我想也许有一种方法可以指明需要使用哪些类常量。但我们必须问——为什么要将类常量传递给该类中的方法?这很常见,为什么要将它们定义为全局常量PDO::FETCH_ASSOC
和许多其他工具。我知道删除的typeHint会起作用。我想也许有办法指明需要使用哪些类常量。