为什么我已经定义了 并且都echo 出来了 编译器依然
Notice: Use of undefined constant userconst - assumed 'userconst' in //后面路径不复制了class UserEntity{
private $username;
private $password;
const userconst = "HuangYuHong"; //常量 用户名+常量再加密往数据库里插
function __construct($u,$p){
$this->username = $u;
$this->password = $p;
}
function register(){
//include("../DB/MySql.php");
echo md5(userconst); //12行 编译器说为定义 但是为什么还能输出
echo "|||";
echo md5(userconst); //14行
//$database = new MySql();
//$sql = "insert into user_table (username,password) values('".$username."','".$password."')";
//$database->setSQL($sql);
}
function logout(){
echo "注销";
}
function login(){
echo "登录";
}
function usercheck(){
echo "检查用户";
}
}
调用user事例的页面 我以前学JAVA的 按照MVC JSP+SERVLET+JAVABEAN 写的请多指教include("../bean/UserEntity.php");
if($_POST["submit"]){
$username = $_POST["username"];
$password = $_POST["password"];
$user = new UserEntity($username,$password);
$user->register();
}else{
echo "没有提交";
}
Notice: Use of undefined constant userconst - assumed 'userconst' in //后面路径不复制了class UserEntity{
private $username;
private $password;
const userconst = "HuangYuHong"; //常量 用户名+常量再加密往数据库里插
function __construct($u,$p){
$this->username = $u;
$this->password = $p;
}
function register(){
//include("../DB/MySql.php");
echo md5(userconst); //12行 编译器说为定义 但是为什么还能输出
echo "|||";
echo md5(userconst); //14行
//$database = new MySql();
//$sql = "insert into user_table (username,password) values('".$username."','".$password."')";
//$database->setSQL($sql);
}
function logout(){
echo "注销";
}
function login(){
echo "登录";
}
function usercheck(){
echo "检查用户";
}
}
调用user事例的页面 我以前学JAVA的 按照MVC JSP+SERVLET+JAVABEAN 写的请多指教include("../bean/UserEntity.php");
if($_POST["submit"]){
$username = $_POST["username"];
$password = $_POST["password"];
$user = new UserEntity($username,$password);
$user->register();
}else{
echo "没有提交";
}
虽然能有输出,但结果是不正确的
你
ecoh userconst;
echo self::userconst;
就知道了
常量一般要大些,便以区分。
define("USERCONST", "userconst");
CONST USERCONST = "user";常量在类中以调用静态属性的方法调用:
SELF::USERCONST常量和变量不同:
常量前面没有美元符号($);常量只能用 define() 函数定义,而不能通过赋值语句;常量可以不用理会变量范围的规则而在任何地方定义和访问;常量一旦定义就不能被重新定义或者取消定义;常量的值只能是标量。
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}echo MyClass::CONST_VALUE;
?>
self 和 parent 这两个特殊的关键字是用于在类的内部对成员或方法进行访问的。Example #2 :: from inside the class definition
<?php
class OtherClass extends MyClass
{
public static $my_static = 'static var'; public static function doubleColon() {
echo parent::CONST_VALUE . "\n";
echo self::$my_static . "\n";
}
}OtherClass::doubleColon();
?>
当一个子类覆盖其父类中的方法时,PHP 不会再执行父类中已被覆盖的方法,直到子类中调用这些方法为止。这种机制也作用于 构造函数和析构函数、重载 及 魔术 函数。Example #3 调用父类的方法
<?php
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc()\n";
}
}class OtherClass extends MyClass
{
// 覆盖父类中的方法
public function myFunc()
{
// 但仍然可以调用已被覆盖的方法
parent::myFunc();
echo "OtherClass::myFunc()\n";
}
}$class = new OtherClass();
$class->myFunc();
?>