【发布时间】:2014-06-14 15:22:08
【问题描述】:
我刚刚开始学习 oop,我只是想将最基本的代码集放在一起,以确保我能正确理解事物。我想在 $_POST 变量中捕获一个表单条目并将其传递给一个对象,让它将某些内容输出回浏览器。没有 SQL,没有安全措施,只是理解证明。
这是表格:
<html>
<head>
<title>SignUp Form</title>
</head>
<body>
<?php
if(!empty($_POST['name'])) {
include_once "class.php";
} else {
?>
<form method="post" action="signup.php">
<label for="name">Enter name below:</label></br>
<input type="text" name="name" id="name"></br>
<input type="submit" value="Submit">
</form>
<?php
}
echo $name->processName($_POST['name']); ?>
</body>
</html>
这是课程:
<?php
class Process {
public $entry;
function __construct($entry) {
$this->entry = $entry;
}
public function processName($entry) {
return "You entered " . $this->entry . ".";
}
}
$name = new Process($_POST['name']); ?>
这现在可以正常工作,但我似乎不必在表单页面上的 echo 语句和类页面上的对象中输入 $_POST。这个对吗?我是否应该在 $entry 属性中收集它。它正在工作,但我认为执行不正确。提前致谢!
【问题讨论】:
-
恕我直言,将数据成员公开并不是一个好主意。请改用 getter 和 setter。
-
每次页面加载时都会执行
echo $name->processName($_POST['name']);这一行,无论是否包含类。如果不包含 class.php,您应该会收到错误、警告或通知,具体取决于您的配置。 -
我建议你结帐 laravel。
-
@MichaelCalkins 哇,升级很快!此问题也被标记为 OOP,因此将 OP 定向到 laravel 并不是真正有效的评论。