当函数在类中时,我在使用函数/方法调用发送参数时遇到问题。
我这样做:
echo class_name::function_name('string_arg');
成功到达function_name
类中的函数class_name
。但是,当函数运行时,不会获取作为字符串的参数string_arg
。就好像该函数不接收参数或只是不读它。
有关信息:此调用是在同一类中的另一个函数内部进行的。
我在这个::
类调用方法中做错了吗?令我感到困惑的是,我可以达到这个功能,但是参数无论如何我仍然只能得到函数的默认行为。
答案 0 :(得分:1)
这取决于该功能是否使用副作用。如果此函数只返回一个值,那么就没有问题,因为它不需要与类本身进行交互。我认为问题可能是你试图将它作为你工作的对象之外的类方法。当你将类部分添加到调用的前面时,即这个位class_name::
,你实际上并没有调用与当前对象中的类相同,因此它不会影响或使用该对象中的字段。如果您只是致电function_name('string')
,那么它将使用您调用它的对象的字段。
答案 1 :(得分:1)
我很少看到人们使用class :: function_name()作为非静态方法。你有没有理由使用它?
你试试这个吗?
<?php echo $this->function_name($str); ?>