Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 课时_Php - Fatal编程技术网

Php 课时

Php 课时,php,Php,您好,我只是停留在语法,谁能帮我下一个代码 class User { protected $userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']); protected $useremail = preg_replace('#[^A-Za-z0-9@_.-]#i', '', $_SESSION['user']); protected $userPassword = preg_replace('#[^A-Za-z

您好,我只是停留在语法,谁能帮我下一个代码

class User {    
  protected $userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']);
  protected $useremail = preg_replace('#[^A-Za-z0-9@_.-]#i', '', $_SESSION['user']);
  protected $userPassword = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION['user_password']);

  public function CheckUserLogin(){     
    if(!isset($_SESSION['user'])){
      header("location: login.php");
      exit();    
    }

    //Try to find user from session data in database
    $sql = "SELECT * FROM users WHERE id = '$this->userID' AND email = '$this->useremail' AND password = '$this->userPassword' LIMIT 1";
    $res = mysql_query($sql) or die(mysql_error());
    $userMatch = mysql_numrows($res);
    if ($userMatch == 0) {
      header("location: login.php");
      exit();
    }
  }
}

首先,请注意,在声明属性时,不能为其指定编译时未知的值——这意味着您不能调用函数来初始化属性

此代码:

protected $userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']);
无效


作为参考,您可以阅读手册页面(引用相关句子):

它们是通过使用关键字
public
protected
中的一个来定义的, 或
private
,后跟正常变量声明

这个 声明可能包括初始化,但此初始化 必须是一个常量值——也就是说,它必须能够被计算 在编译时,不能按顺序依赖于运行时信息 待评估


您应该首先申报财产;然后,稍后(例如,在类的末尾)初始化它:

class User {

    protected $userID;

    public function __construc() {
        $this->userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']);
    }
}

首先,请注意,在声明属性时,不能为其指定编译时未知的值——这意味着您不能调用函数来初始化属性

此代码:

protected $userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']);
无效


作为参考,您可以阅读手册页面(引用相关句子):

它们是通过使用关键字
public
protected
中的一个来定义的, 或
private
,后跟正常变量声明

这个 声明可能包括初始化,但此初始化 必须是一个常量值——也就是说,它必须能够被计算 在编译时,不能按顺序依赖于运行时信息 待评估


您应该首先申报财产;然后,稍后(例如,在类的末尾)初始化它:

class User {

    protected $userID;

    public function __construc() {
        $this->userID = preg_replace('#[^0-9]#i', '', $_SESSION['user_id']);
    }
}

简而言之:您只能将常量表达式指定给类声明内的属性(在类主体内,但在方法外)。其他所有内容(变量、函数调用等)仅限于代码块(main、函数和方法)

然而,你的代码在你展示它的方式是非常神奇的,你应该避免在任何情况下。改用构造函数

class User {    
  protected $userID;
  protected $useremail;
  protected $userPassword;

  public function __construct ($userId, $user, $password) {
    $this->userID = preg_replace('#[^0-9]#i', '', $userId);
    $this->useremail = preg_replace('#[^A-Za-z0-9@_.-]#i', '', $user);
    $this->userPassword = preg_replace('#[^A-Za-z0-9]#i', '', $password);
  }

  // ..
}

简而言之:您只能将常量表达式指定给类声明内的属性(在类主体内,但在方法外)。其他所有内容(变量、函数调用等)仅限于代码块(main、函数和方法)

然而,你的代码在你展示它的方式是非常神奇的,你应该避免在任何情况下。改用构造函数

class User {    
  protected $userID;
  protected $useremail;
  protected $userPassword;

  public function __construct ($userId, $user, $password) {
    $this->userID = preg_replace('#[^0-9]#i', '', $userId);
    $this->useremail = preg_replace('#[^A-Za-z0-9@_.-]#i', '', $user);
    $this->userPassword = preg_replace('#[^A-Za-z0-9]#i', '', $password);
  }

  // ..
}

解析错误:语法错误,C:\xampp\htdocs\social\libs\user.php第6行中意外的“(”,应为“,”或“;”;我无法执行受保护的$userPassword=preg\u替换(“#[^A-Za-z0-9]#i',”,$\u会话['user\u password']);我现在不知道为什么会发生错误:语法错误,意外”(,在C:\xampp\htdocs\social\libs\user.php第6行中应为“,”或“;”,我无法执行受保护的$userPassword=preg_replace(“#[^A-Za-z0-9]#i',”,$#会话['user_password');我现在不知道为什么