2017-09-06 285 views
1

如何使用对象或包含的类文件在全局函数中调用类函数?如何在另一个函数中调用php类函数

cls.php是正在使用的类文件。

class tst { public function abc($i) { return $i*$i ; } 

需要调用ABC功能xyzfunction文件two.php

include('cls.php'); 
$obj = new tst(); 
function xyz($j){$result = $obj->abc($j);return $result;} 
echo xyz(5); 

调用$obj->abc($j)不工作。我怎样才能拨打功能abc()

+0

将'$ obj'变量作为参数传递给函数'xyz(5,$ obj).. function($ j,$ obj){} – JYoThI

+1

为什么用Linux标记这个标记? –

+0

记住删除横幅效果?在开始行 –

回答

2

试试这样做,首先是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); 
+1

感谢您的快速响应。它现在正在工作。 – Navneet

0

您必须在函数内部创建对象,而不是在外部。

function xyz($j){ 
    $obj = new tst(); 
    $result = $obj->abc($j);return $result; 
} 
0

请参阅下面的代码:

<?php 

function xyz($j){ 
    $obj = new tst(); 
    $result = $obj->abc($j); 
    return $result; 
} 
?> 

类的实例已经在函数调用里面做

0

如果您打算在更多的功能,使用它你可以实例化功能外类并作为一个参数传递给像这样的函数。否则你实例化函数内部的类。

<?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); 
?> 
0

也许你应该使用命名空间

然后

use tst/tstClass 
$tst = new tstClass(); 
$result = $obj->abc($j); 
return $result; 
0

你忘了你的依赖注入。

<?php 

/** 
* @param int $j 
* @param tst $obj 
* @return int 
*/ 
function xyz($j, tst $obj) 
{ 
    $result = $obj->abc($j); 
    return $result; 
} 

不要在函数内部实例化类,这是不好的做法。阅读依赖注入。

相关问题