这句:$curl = curl_init();
不能通过调用函数的方式为成员变量赋值!!
楼主全局变量不能在class内部定义,但是可以在类内部使用。
如果要访问类内部的变量,可以把成员变量设置成public
<php
// 定义一个全局变量
$global_var = 1;
class A
{
// 定义一个public型成员变量
public static $public_class_var = 2;
public function print_global()
{
// 使用全局变量
global $global_var;
echo $global_var;
}
}
// 测试
$a = new A();
$a->print_global();
echo A::$public_class_var;定义一个函数 这个函数里的变量都是局部变量 它们只能在这个函数内部使用 return是这个函数的返回值 调用这个函数就会输出这个值 这个值可以是函数内的变量 也就是局部变量
全局变量只要是在这个页面里就能使用
超全局变量 在所有页面都能使用函数内部定义的变量,没有特别声明的话,其作用域是在函数体内部才起作用。
如果想要在函数外部访问其内部的变量,那么,需要在函数体内部变量定义时,声明其作用域为全局,以下是示例:
<php
function test()
{
global $a;
$a = 1;
}
test();
echo $a;
>局部变量使用全局变量的时候使用
function test(){
glable $gl;//这个就是使用全局变量的方法
}
欢迎访问我的博客 >你总共提了三个问题,三个问题都是关于访问权限控制的,建议你将面向对象的访问权限控制的那部分给学习一下。
(1)类里的变量是否一定要声明为成员属性,
答:不一定,在一个类中,有构造函数、属性、方法;未在方法和构造函数中声明的变量为属性,属性是体现这一个类(对象)的特性的描述,他是这个类的特性的描述,这个类的状态的改变将会随着这些属性值的改变而改变。如果某一变量不属于这个类的属性,当然可以声明在别的地方,只要在访问权限内,当然也可以访问,就像foreach($this->post as $key=>$value),$key与$value都不是类的属性,当然不用声明在类的属性部分了,这里的$key与$value便成了这个方法的局部变量。
(2)非类的属性,绝对不能用$this->来访问,$this指的是当前对象,$this->所指向的是当前对象的属性或许方法,既然不是类的属性,当然不能用$this->来访问了,
静态方法只能访问其他的静态方法或属性,比如
class A {private static $url;
public static function setDefaultUrl($url) {
self::$url = $url;
}
public static function getDefaultUrl() {
return self::$url;
}
}
//或者在你的静态方法中获得实例,当然这样的话可能达不到你预期的效果,推荐你还是使用上面的方法。
class A {
private $url = 'demo';
public static function getUrl() {
$obj = new self();
return $obj->url;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)