我是新来的编程。我有这种情况:从另一个班级功能调用班级功能
我有A类,它有许多功能。其中一个功能是functionX。
在functionX我需要对函数y调用属于另一个等级:B级
那么,如何查看在函数y从内functionX?
我使用Codeigniter。
在此先感谢。
我是新来的编程。我有这种情况:从另一个班级功能调用班级功能
我有A类,它有许多功能。其中一个功能是functionX。
在functionX我需要对函数y调用属于另一个等级:B级
那么,如何查看在函数y从内functionX?
我使用Codeigniter。
在此先感谢。
那要看。如果该函数是一个静态函数或没有。
首先你必须包含与类文件...
include_once('file_with_myclass.php');
如果是静态的,你可以这样调用:
ClassName::myFunction()
如果不是,那么你创建该类的一个实例,然后在该实例上调用该函数。
$obj = new ClassName();
$obj->myFunction();
正如您可以猜到的功能是静态意味着你可以把它无需创建实例。例如,如果您有一个Math类,并且想要定义一个函数来获取参数来计算它们的总和,那么这很有用。创建Math的一个实例并不会有用,因此您可以声明为静态并以此方式使用它。
这里有一个链接到文档进一步信息
试试这个。
class ClassA {
public function functionX() {
$classB = new ClassB();
echo $classB->functionY();
}
}
class ClassB {
public function functionY() {
return "Stahp, no more OO, stahp!";
}
}
如果函数y是静态的,你可以调用ClassB的::函数y()。否则,您必须先创建B类的实例。像:
$instance = ClassB;
$instance->functionY();
但也许你的意思是别的吗?
类功能?一个静态方法?
如果你有一个实例(public)方法,你可以调用$ classB-> functionY()。
如果你有一个静态方法,你可以调用ClassB :: functionY();
所以:
class ClassA {
public function functionX(){
$classB = new ClassB();
// echo 'foo';
echo $classB->functionY();
// echo 'bar';
echo ClassB::functionYStatic();
}
}
class ClassB {
public $someVar;
public static $someVar2 = 'bar';
function __construct(){
$this->someVar = 'foo';
}
public function functionY(){
return $this->someVar;
}
public static function functionYStatic(){
return self::$someVar2;
}
}
看起来像你的类的人有一个依赖于另一个问题:
<?php
class A
{
public function x()
{
echo 'hello world';
}
}
class B
{
private $a;
public function __construct(A $a)
{
$this->a = $a;
}
public function y()
{
$this->a->x();
}
}
$a = new A();
$b = new B($a);
$b->y();
根据你的代码的样子,如果它是有道理的,你可以注入A类进入y()
public function y(A $a)
{
// your code with $a
}
因为'好'在技术文本方面非常不明确。有些人通过筛选最硬的手册来学习,而其他人则通过实例学得更好。 –
@NeilMasters - 有各种各样的教科书 - 所以一个好的是你的学习风格 –
我同意@EdHeal这是基本的面向对象,一本好书会解释它比我们任何人都可以更好 – meda