Ⅰ 关于php类中定义常量问题
代码试修改如下:
publicfunctionxx(){
echo"childtest";
echoself::tt;
}
Ⅱ php的面向对象的接口里只能有抽象方法和静态常量,定义方法的时候前面不用加abstract吗
在php中,如果你用interface定义一个接口,那么接口内部的方法都是没有实体的public公共方法。如果要使用这个接口来实现逻辑处理,那就需要implements来实现接口,从而接口中所有定义的方法都必须在接口类中全部实现
Ⅲ php中静态变量属于A.全局变量B.局部变量C.可变变量D.常量
A,静态变量属于全局变量,不可以变得
Ⅳ PHP:面向对象中怎么在类的内部调用常量
<?php
class Foo{
const con_var="常量值不能被改";
public function method_a(){
echo (self::con_var); // 内部调用
}
}
echo(Foo::con_var); //外部调用 注修饰符为public
$myFoo=new Foo();
echo ($myFoo->method_a());
?>
Ⅳ php静态属性跟常量有什么区别啊
类的静态属性. 会在类文件加载的时候, 就初始化.
属性值是可以更改的.
常量...一旦定义了. 就无法变更值..
这应该算是最大区别.
另外, 常量只能是简单的数据类型(如: int , string , boolean,float , double) ,
类的静态属性, 可以是php所支持的任意变量类型(但初始化的时候. 只能是简单数据类型, 数组)
Ⅵ PHP中,可以使用什么实现在不创建对象的情况下调用类中的常量,变量和方法
那就用静态调用了。但事先要声名你的变量戓方法为static
调用时用::就可以了
Ⅶ php 怎么理解常量,对象中的静态变量在内存储存是否多个用户同时使用一个
常量只能使用在一个HTTP请求,即同一个进程。多个用户肯定是不行,每个用户的一个操作就是一个HTTP请求,一个进程。如果要多个用户使用同一个的话可以用缓存,也可以用写入文件、数据库之类记录起来,多个用户需要用到就去读取。
Ⅷ php如何在类中定义常量
我们可以在类中定义常量。常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号。
classMyClass
{
constconstant='constantvalue';
functionshowConstant(){
echoself::constant." ";
}
}
echoMyClass::constant." ";
$classname="MyClass";
echo$classname::constant." ";//PHP5.3.0之后
$class=newMyClass();
$class->showConstant();
echo$class::constant." ";//PHP5.3.0之后
Ⅸ php 为什么常量可以用数组定义 静态变量却不能
类的变量成员叫做“属性”,或者叫“字段”、“特征”,在本文档统一称为“属性”。属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成。属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值
static $a = ABC;
就像其它所有的 PHP 静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。
Ⅹ php中static,const和define的区别
(1)编译器处理方式不同define宏是在预处理阶段。const常量是编译运行阶段使用。(2)类型和安全检查不同define宏没有类型,不做任何类型检查,仅仅是。const常量有具体的类型,在编译阶段会执行类型检查。(3)存储方式不同define宏仅仅是,有多少地方使用,就多少次,不会分配内存。const常量会在内存中分配(可以是堆中也可以是栈中)。(4)const可以节省空间,避免不必要的内存分配。例如:#definePI3.14159//常量宏constdoulbePi=3.14159;//此时并未将Pi放入ROM中doublei=Pi;//此时为Pi分配内存,以后不再分配!doubleI=PI;//编译期间进行宏替换,分配内存doublej=Pi;//没有内存分配doubleJ=PI;//再进行宏替换,又一次分配内存!const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。(5)提高了效率。编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。