[英]How to call php class function in another function
如何在带有对象或包含的类文件的全局函数中调用类函数。
cls.php
是正在使用的类文件。
class tst { public function abc($i) { return $i*$i ; }
需要在文件two.php
中的xyzfunction中调用abc函数
include('cls.php');
$obj = new tst();
function xyz($j){$result = $obj->abc($j);return $result;}
echo xyz(5);
调用$obj->abc($j)
不起作用。 如何调用函数abc()
?
尝试以这种方式进行操作,首先require_once
文件。 然后使用$cls
代码创建该类的新实例,然后使用最后一行代码执行一个函数。
require_once('cls.php');
$cls = new cls();
$cls->function();
确保这在您的函数内部,例如
public function new_function() {
require_once('cls.php');
$cls = new cls();
$result = $cls->function();
return $result;
}
然后在您的函数中将其响应发送到当前函数中,例如
$res = $cls->new_function();
$cls->function($res);
您必须实例化函数内部而不是外部的对象。
function xyz($j){
$obj = new tst();
$result = $obj->abc($j);return $result;
}
请参考以下代码:
<?php
function xyz($j){
$obj = new tst();
$result = $obj->abc($j);
return $result;
}
?>
类实例化必须在函数调用中完成
如果要在更多函数中使用它,则可以在函数外部实例化该类,并将其作为参数传递给该函数,否则,您可以在函数内部实例化该类。
<?php
class tst {
public function abc($i) {
return $i*$i ;
}
}
$obj = new tst();
function xyz($j,$obj){
$result = $obj->abc($j);
return $result;
}
echo xyz(5,$obj);
?>
也许你应该使用命名空间
namespace /tst
class tstClass { publienter code herec function abc($i) { return $i*$i ; }
接着
use tst/tstClass
$tst = new tstClass();
$result = $obj->abc($j);
return $result;
您忘记注入依赖项。
<?php
/**
* @param int $j
* @param tst $obj
* @return int
*/
function xyz($j, tst $obj)
{
$result = $obj->abc($j);
return $result;
}
不要实例化函数内部的类,这是不好的做法。 阅读有关依赖项注入的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.