将 URL 参数传递给 class
pass URL param to class
如何将 URL 参数传递给 PHP 中的 class?
$questionID = isset($_GET['question']) ? ($_GET['question']) : 0;
class Question {
public function __construct() {
$this->id = $questionID;
}
它说 $questionID 在构造函数中未定义。
$_GET
是全局可访问的,但 $questinID
不是。
您可以做的是从 class.
中访问 $_GET
class Question {
public function __construct() {
$this->id = isset($_GET['question']) ? $_GET['question'] : 0;
}
}
或者传递给构造器。
$questionID = isset($_GET['question']) ? ($_GET['question']) : 0;
class Question {
public function __construct($questionID) {
$this->id = $questionID;
}
}
$question = new Question($questionID);
第二种方法是首选方法,因为它允许您以更灵活的方式创建问题,例如,可以更轻松地创建单元测试。
可以通过三种方式使数据可用:
1.在构造函数中访问$_GET数据:
class Question {
public function __construct() {
$this->id = isset($_GET['question']) ? $_GET['question'] : 0;
}
}
2。将变量作为构造函数参数传递:
class Question {
public function __construct($questionId) {
$this->id = $questionID;
}
}
然后在初始化新问题时传递值:
$question = new Question($_GET['question']);
3。创建对象后使用一个setter设置值:
class Question {
public function setId($questionId) {
$this->id = $questionId
}
}
然后在初始化问题后设置值:
$question = new Question();
$question->setId($_GET['question']);
如果您绝对确定您获取 ID 的方式永远不会改变(这种情况不常见),请使用第一种方法。
如果您确定 class 在任何情况下都需要 ID,请使用第二种方法。
如果 class 可能需要也可能不需要 ID,或者如果您需要在对象的生命周期内更改 ID 的方法。
如何将 URL 参数传递给 PHP 中的 class?
$questionID = isset($_GET['question']) ? ($_GET['question']) : 0;
class Question {
public function __construct() {
$this->id = $questionID;
}
它说 $questionID 在构造函数中未定义。
$_GET
是全局可访问的,但 $questinID
不是。
您可以做的是从 class.
中访问$_GET
class Question {
public function __construct() {
$this->id = isset($_GET['question']) ? $_GET['question'] : 0;
}
}
或者传递给构造器。
$questionID = isset($_GET['question']) ? ($_GET['question']) : 0;
class Question {
public function __construct($questionID) {
$this->id = $questionID;
}
}
$question = new Question($questionID);
第二种方法是首选方法,因为它允许您以更灵活的方式创建问题,例如,可以更轻松地创建单元测试。
可以通过三种方式使数据可用:
1.在构造函数中访问$_GET数据:
class Question {
public function __construct() {
$this->id = isset($_GET['question']) ? $_GET['question'] : 0;
}
}
2。将变量作为构造函数参数传递:
class Question {
public function __construct($questionId) {
$this->id = $questionID;
}
}
然后在初始化新问题时传递值:
$question = new Question($_GET['question']);
3。创建对象后使用一个setter设置值:
class Question {
public function setId($questionId) {
$this->id = $questionId
}
}
然后在初始化问题后设置值:
$question = new Question();
$question->setId($_GET['question']);
如果您绝对确定您获取 ID 的方式永远不会改变(这种情况不常见),请使用第一种方法。
如果您确定 class 在任何情况下都需要 ID,请使用第二种方法。
如果 class 可能需要也可能不需要 ID,或者如果您需要在对象的生命周期内更改 ID 的方法。