如何在创建对象时传递值

时间:2011-08-22 22:06:53

标签: php

我使用的是php 5.3.6。

当我创建一个新对象时,以下工作:

$my_object = new my_clas();

但是,如果我想传递值,例如:

$my_object = new my_clas( $value1 , @value2 );

这些价​​值观会在哪里?他们是去__construct函数还是我可以定位特定函数?

注意:现在我有一个带有__construct函数的类,我正在做上面的事情(例如,传递值),一切正常,但我想知道这是一个幸福的事故还是我应该担心的事情。

5 个答案:

答案 0 :(得分:1)

将始终传递给__construct函数。如果你想从那里将​​它们传递给另一个函数,那么在__construct

中调用它

答案 1 :(得分:0)

如果你这样做:

$my_object = new my_clas( $value1 , @value2 );

params将被传递给构造函数。

如果你想将它传递给课堂上的其他功能,你可以这样做:

$my_object = new my_clas();
$my_object->myfunction($value1, $value2);

或者让构造函数处理它。

答案 2 :(得分:0)

@不是PHP。

class my_clas{
    function __construct($value1,$value2){
        //Here you can play with $value1 and $value2
    }
}

答案 3 :(得分:0)

另一个想法可能是你将代码建议的值传递给页面

$myClassTest = new ClassTest($value1, $value2)
$myData = $myClassTest->getValue2();

并在班级

class ClassTest
{

    private $value1;
    private $value2;

    __construct($value1, $value2)
    {
         $this->value1 = $value1;
         $this->value2 = $value2;
    }

    function getValue2()
    {
        return $this->value2;
    }

}

这样,您始终可以调用getValue来获取所需的数据。我通常会为我在课堂上的所有变量创建这个。非常适合测试课程。

如果你想设置一个值add

function setValue2($value2)
{
    $this->value2 = $value2;
}

答案 4 :(得分:0)

是的,当你实例化一个类时,如果你没有使用自PHP 5.3.3之后的命名空间,那么被调用的方法是__construct或与该类同名的其他方法

有关构造函数的更多信息: http://php.net/manual/en/language.oop5.decon.php

如果您使用名称空间,那么对于使用与该名称相同的名称调用的方法的弃用: http://php.net/releases/5_3_3.php