我使用的是php 5.3.6。
当我创建一个新对象时,以下工作:
$my_object = new my_clas();
但是,如果我想传递值,例如:
$my_object = new my_clas( $value1 , @value2 );
这些价值观会在哪里?他们是去__construct函数还是我可以定位特定函数?
注意:现在我有一个带有__construct函数的类,我正在做上面的事情(例如,传递值),一切正常,但我想知道这是一个幸福的事故还是我应该担心的事情。
答案 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