请教下是phpeclipse的编译错误吗——明明定义了而且输出了还报警告

Java124628022 2012-03-01 11:03:49
为什么我已经定义了 并且都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 "没有提交";
}
...全文
105 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
coder 2012-03-01
  • 打赏
  • 举报
回复
范围解析操作符(::)

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量,还可以用于覆盖类中的成员和方法。

当在类的外部访问这些静态成员、方法和常量时,必须使用类的名字。

把 Paamayim Nekudotayim 选作该操作符的名字似乎有些奇怪。然而,这是 Zend 开发小组在写 Zend Engine 0.5 (被用于 PHP 3 中)时所作出的决定。事实上这个词在希伯莱文就是双冒号的意思。

Example #1 在类的外部使用 :: 操作符
<?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();
?>
  • 打赏
  • 举报
回复
#2 正解
[Quote=引用楼主 java124628022 的回复:]
const userconst = "HuangYuHong";
[/Quote]
常量一般要大些,便以区分。
define("USERCONST", "userconst");
CONST USERCONST = "user";

常量在类中以调用静态属性的方法调用:
SELF::USERCONST

常量和变量不同:


常量前面没有美元符号($);

常量只能用 define() 函数定义,而不能通过赋值语句;

常量可以不用理会变量范围的规则而在任何地方定义和访问;

常量一旦定义就不能被重新定义或者取消定义;

常量的值只能是标量。
xuzuning 2012-03-01
  • 打赏
  • 举报
回复
访问类常量必须冠以类名,类中可用 self 代替类名

echo md5(userconst); //12行 编译器说为定义 但是为什么还能输出

其中的 userconst 是标量,不能通过严格的语法检查
虽然能有输出,但结果是不正确的

ecoh userconst;
echo self::userconst;
就知道了
黄袍披身 2012-03-01
  • 打赏
  • 举报
回复
在类里面使用常量

self::userconst;
DOWNLOAD Eclipse.org home:http://www.eclipse.org/ Language IDE:http://www.eclipse.org/home/categories/languages.php PHP开发版本:http://download.eclipse.org/tools/pdt/downloads/release.php?release=R20080103 Eclipse这样功能完整且成熟的开发环境,是由蓝色巨人IBM所释出。IBM花了4千万美金来开发这个IDE(Integrated Development Environment)。第一版1.0在2001年11月释出,随后逐渐受到欢迎。Eclipse已经成为开放原始码计划(Open Source Project),大部分的开发扔然掌握在IBM手中,但是有一部份由eclipse.org的软件联盟主导。(http://www.eclipse.org) ----------------------------------------------------------------- 使用Eclipse开发PHP项目[转] 2007-04-25 13:30 一、安装 初次使用Eclipse开发PHP项目,安装还是得花费一定的时间的,仔细看一下本文,可以节约不少时间。首先。Eclipse项目是用Java开发的, 所以需要在Java的虚拟机上运行,而Eclipse缺省是没有带虚拟机的,所以如果你的机器上没有安装Java虚拟机(一般的Windows机器上都没 安装),你先得安装一个,在这里顺便说一下,安装Java虚拟机有J2SDK和J2RE供选择,J2SDK中包含有J2RE,另外开有供Java开发者使 用的源程序、文档等,比J2RE大多了,Eclipse的运行只要J2RE支援就可以了,所以建议安装一个J2RE,版本根据Eclipse的说明, J2RE1.3.1以上就可以了,一般从网上下载的是J2RE1.4.x。 Eclipse是一个很优秀的开发环境,对Java的支持是最强大的,但是他设计成了一个面向插件的结构,给它再安装一个插件,他就可以很好地开发C++ 程序或PHP程序了,甚至是UML。在这里,下面我们就要用到Eclipse的插件,名字叫PHPEclipse。这个插件提供了创建PHP工程,PHP 语法加亮,PHP代码自动补全、以及从帮助中呼出PHP文档等很实用的功能,还有一个值得一提的是,用PHP开发的一般是WEB网页,这个插件带了一个 PHPBrowser,当你保存PHP程序时,网页自动刷新,这就使得省得你每次修改了程序代码想看一下运行结果都要切换到另一个窗口去刷新一个的麻烦。 当然,我觉得用Eclipse的Console窗口运行PHP程序感觉也很好,能够有在WIN2000命令提示符下的感觉,不像在Zend Studio或Edit plus等其它的软件,非等到全部程序都运行完了才把结果显示出来,感觉真是很爽。当然要想运行基于Web的PHP程序,Apache,IIS你得自己安 装,PHP也得你自已安装和配置,PHPEclipse是不会为你包办的,更别指望Eclipse了,也许它并不知道什么叫PHP呢!不过,有一个 wampp软件包,把它下载下来一解压什么都搞定了,PHPEclipse正是和它相配合的。 说了这么多,也许早就把你说得不耐烦了吧,哪有这么麻烦呢?别急,只要你尝到了用Eclipse开发PHP的好处,也许你很快就爱上他了呢!并且,这一切都是免费的,不用打补丁,不用下载注册码-)。 下面我们就一步一步地来安装吧。 第一步、下载安装J2RE或J2SDK。 J2RE 1.4.2 J2SDK 1.4.2 第二步、下载Eclipse Eclipse 并解压到d:\盘,自动生成eclipse目录 第三步、下载PHPEclipse PHPEclipse 并复制到d:\eclipse目录,点击右键,解压到当前目录,将解压后的plugins和features目录里的所有内容分别拷贝到eclipse目录下的plugins和features目录里(自补充)。 第四步、启动Eclipse 双击Eclipse或在命令提示符下输入Eclipse,即可启动Eclipse 注意:如果在安装PHPEclipse之前已经在用eclipse,那么这里需要在启动Eclipse时加个参数-clean,因为用这种方式启动eclipse会自动重新装载插件。 第五步、其它一些相关工具,如PHP、MYSQL、APACHE的路径还都需要在启动Eclipse后进行设置,这里就不做描述。 eclipse 3.2:http://wlzx.zzuli.edu.cn/download/eclipse.rar phpeclipse:http://sourceforge.net/project/showfiles.php?group_id=57621 eclipse SQL Explorer Plugin:http://sourceforge.net/project/showfiles.php?group_id=132863&package_id=148199&release_id=552787

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧