我收到错误消息
解析错误:语法错误,意外 T_PRIVATE in E:\ PortableApps \ XAMPP \ htdocs中\ SN \ AC \ ACclass.php 在第6行
尝试运行我的脚本时。我是PHP的新手,想知道是否有人可以指出我的错误。这是该部分的代码。
<?php
class ac
{
public function authentication()
{
private $plain_username = $_POST['username'];
private $md5_password = md5($_POST['password']);
$ac = new ac();
答案 0 :(得分:14)
您没有在函数/方法中定义类属性(public / private / etc)。你是在课堂上做的。
class ac
{
private $plain_username;
private $md5_password;
public function authentication()
{
private $this->plain_username = $_POST['username'];
private $this->md5_password = md5($_POST['password']);
}
}
//declare a class outside the class
$ac = new ac();
如果要在函数/方法中定义变量,只需声明它们而不使用public / private / protected
$plain_username = $_POST['username'];
答案 1 :(得分:3)
您在方法中声明了private
变量,这是不可能的。
如果您希望ac
拥有私有变量,则必须在类定义中声明它们:
class ac
{
private $plain_username = $_POST['username'];
private $md5_password = md5($_POST['password']);
并使用
在类的方法中访问它们public function authentication()
{
echo $this->plain_username;
顺便说一下,分配md5_password
的语句不起作用 - 你不能在类定义中使用函数。
你必须在类构造函数中进行md5
计算,无论如何这将是更简洁的方法。在课堂上,添加:
function __construct ($plain_username, $password)
{
$this->plain_username = $plain_username;
$this->md5_password = md5 ($password);
}
然后初始化类:
$ac = new ac($_POST["username"], $_POST["password"]);
答案 2 :(得分:1)
公共和私有仅应用于类中的变量,其他任何地方都是无用的。您无法从函数请求变量,因此无法将其定义为public / private / protected。函数中的变量只能应用静态(至少这是我应用于函数内部变量的唯一内容)。