2017-03-03 56 views
-1

我有这个问题在我的脑海里仍然困惑着我。我在PHP中有类,它具有通过调用同一类的其他方法来操纵值的方法。所有这些函数都通过“return”语句返回一些排序值。但是,当我调用任意数量的函数进行操作时,问题就出现了,它总是通过第一个函数调用结束脚本。 例如PHP返回值从内部类

(对不起的伪码)

Class H 
Method1 
$this->Method2() 
$this->Method3() 
Method2 
Returns something 
Method3 
Returns something 
End 

当使用方法1从脚本,该脚本的情况下调用其他两种方法,其中有一个返回值Im。我的脚本在Method1内部的Method2上结束。

+0

你可以发布示例代码或我们可以看看更好地解释它? – Dimi

+0

不是现在,但我想问问这是一个很好的方法来使用echo stmt而返回的东西?因为当我在method1中调用method2时脚本得到了结束,我还想在method2执行后使用method3 –

回答

0

首先你要学会OOPS的基础知识的方法,方法重载和压倒一切的PHP..especially返回类型.. http://www.killerphp.com/tutorials/php-objects-page-3/ 我希望这一个让你感觉更好......如果我答没有按听起来不错,不要你的提问...继续搜索..它是一个棘手的..

+0

谢谢,这是棘手的。我会看看它! –

+0

我已经在oops中学到了所有这些东西。这实际上杀了我的脑子! –

+0

我简要介绍了你的..它像一个循环..最后当你调用一个方法时,这个循环从第一个开始..所以它在第一个方法之前给出......它是否填充你的问题? – Jana

0

那是因为return杀死了进程并返回了你想要的。您可以拥有该类的内部属性并检索它们。设置这些属性的方法称为setters,检索它们的方法称为getters。看看这个例子类:

<?php 

Class MyClass { 

    public $firstName; 
    public $lastName; 
    public $city; 

    // Setters 
    public function setFirstName($name) 
    { 
     $this->firstName = $name; 
    } 

    public function setLastName($name) 
    { 
     $this->lastName = $name; 
    } 

    public function setCity($city) 
    { 
     $this->city = $city; 
    } 

    // Getters 
    public function getFullName($name) 
    { 
     return "{$this->firstName} {$this->lastName}"; 
    } 

    public function getCity($name) 
    { 
     return $this->city; 
    } 

} 

现在,因为我设置这些属性,我可以很容易地实例化我的课,抓住信息:如果你想简单的回波数据

$class = new MyClass(); 

$class->setFirstName('David'); 
$class->setLastName('Parker'); 
$class->setCity('AnyTown'); 

echo $class->firstName; // David 

echo $class->lastName; // Parker 

echo $class->city; // AnyTown 

// or something like 

echo $class->getFullName(); // David Parker 

,它可能更有意义的实例化这个类并回显这个类的属性。我发现return这个课程通常是很好的练习。使用该类对象时,最好使用echo

希望是有道理的。

+0

我知道getters和setter,但是谢谢。你已经通过实例化一个类然后操作它来演示。如果我不得不操纵同一个类的其他函数的值而不实际实例化它。我希望你明白了吗? –

+0

我不想回复它的好友,它只是在浏览器上打印 –