Ⅰ php class中public,private,protected,static
1. public:权限是最大的,可以内部调用,实例调用
2. protected: 受保护类型,用于本类和继承类调用
常用场景在权限设置
有需要用到权限的Class,只要继承Base这个Class即可用到登录验证。执行Login的时候会先运行Base里面的方法
3. private: 私有类型,只有在本类中使用。
4. static: 一般是在传值的时候使用,表示值不会被修改,默认为public,可用::访问
Ⅱ 关于php当中static关键字,资料上说只能初始化一次。但是数组变量在定义时赋值会被下一次初始化覆盖!
你定义了static 就是静态变量
但是静态变量的初始化只进行一次,而且是定义静态变量的时候初始化
static $a = array(1,2,3);
print_r($a);
static $a = array();
这样实际上是定义了两次静态变量,并初始化,实际做会执行其中一个
就是后面这个
上面的代码实际上会被编译器编程这样
<?php
function f1(){
static $a = array();
print_r($a);
print_r($a);
}
function f2(){
static $a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
print_r($a);
print_r($a);
}
Ⅲ php中static 静态变量和普通变量的区别
php中static 静态变量和普通变量的区别:
在变量的前面加上static 就构成了静态变量(static 变量)。
static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
Ⅳ php static 方法有什么好处
静态方法不需要所在类被实例化就可以直接使用。
静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
Ⅳ php怎么理解这些个关键字啊,public;private;protect;final;static;const;我感觉这
public: 公有属性或方法
在子类中可以通过self::var 或self::method 来调用,可以通过parent::method来调用父类中的方法,但不能调用公有属性.
在实例中可以通过$obj->var或self::method 来调用
protected: 受保护类型
在子类中可以通过self::var 或self::method调用,可以通过parent::method来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性
private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法
再来说说final
1.final不能用来修饰成员属性
2.final只能修饰类和方法
作用:被修饰的类不能被子类所继承;被修饰的方法不能被子类的方法覆盖。
然后来说说static
1.static用来修饰成员属性和成员方法,但不能用来修饰类
2.用static修饰的成员属性可以被同一个类的所有对象共享
3.静态的数据是存在 内存中的 数据段中(初始化静态段)
4.静态的数据是在类在第一次加载时,分配到内存中的
5.什么是类被加载?只要在程序中使用到这个类(有这个类名出现)
6.静态的成员属性都要用类名去访问,不用创建对象,不用对象去访问;在类里边可以用self代表本类($this)
7.静态方法,不能访问非静态的成员属性(但是,在非静态方法却能访问静态的成员属性),非静态的成员属性,必须用对象访问,在内部访问非静态成员属性,用$this.
8.如果你确定一个方法中不需使用到非静态的成员属性,则可以将这个方法声明为静态方法,不需实例化对象,就可以访问
最后来说说const
1.它只能用来修饰成员属性
2.在类中声明常量必须使用const
3.访问方式和访问静态成员属性一样(类外使用 类名::成员属性,类里边则使用self::成员属性)
4.常量一定要在声明的时候就给初始值
Ⅵ php 中class static public var 都定义什么什么
static 一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,而且展一定内存
public 公共的谁都可以调用。
var 跟public 一样。var是老版本php的写法。
<?php
class a{
var $abc="ABC";
}
$b=new a;
$c=$b;
echo $b->abc;//这里输出ABC
echo $c->abc;//这里输出ABC $b->abc="DEF";
echo $c->abc;//这里输出DEF
?>
这个就是php $b引用类a的方法的变量。
引用方法是 类名:: 方法名。好了200分拿出来吧