php高端功能

1.使用Per-Class常量。

用途:可以在不需要初始化该类的情况下使用:

例子:

<?php

class Man //定义Man类

{

const birthday = 19960101; //定义常量变量

}

php定义类,PHP定义类的关键词

//使用const修饰的变量,我们可以通过::操作符对其进行访问。例如:

echo Man::birthday;

//使用const修饰的变量是无法进行修改的,例如:

// Man::birthday=19990101;

//上面那句是会报语法错误的。

?>

执行结果:打印出变量值 也就是19960101

2.对静态方法的实现

用途:PHP可以在方法前面使用static关键字,该方法就可以在未初始化类的情况下通过类名::来进行调用,类似于上面。例如:

<?php

class Man //创建一个Man类

{

static function boy() //创建静态方法

{

return 'boy'; //函数返回字符串boy

}

}

echo Man::boy(); //打印函数的返回值,也就是boy

//但是在静态方法中,是不能使用this关键字的。因为可能会没有可以引用的对象实例

//通俗点说,就是一般我们调用函数是使用obj->method(),而$this就是当前的对象,但是因为

//我们没有对类进行进行实例化,也就没有所谓的对象,故不能使用。

?>

3.延迟静态绑定

从PHP5.3版本引入了延迟静态绑定(last static binding)的概念。

用途:允许在一个静态继承的上下文中对一个被调用类的引用。父类可以使用子类重载的静态方法。例如:

php报错未定义全局变量

当在php中使用一个未定义的全局变量时,会出现报错。这可能是因为你的全局变量没有被正确地初始化或赋值。为了解决这个问题,你可以采取以下措施之一:
1. 确保在使用全局变量之前进行初始化和赋值。可以通过在代码的顶部使用全局变量声明来完成这一点,例如:`global $variable;`。另外,你还可以在函数内使用`$GLOBALS`超全局变量来访问全局变量,例如:`$GLOBALS['variable']`。
2. 如果全局变量位于另一个文件中,确保在使用之前正确引入该文件。
3. 检查全局变量的命名是否正确。确保在使用全局变量时,使用与声明时相同的变量名。
4. 如果你使用了一个没有定义的全局变量,可以使用`isset()`函数来检查该变量是否已经定义,例如:`if (isset($variable)) { // Your code here }`。
总的来说,确保全局变量的正确初始化和赋值,以及正确引用文件和检查变量是否已经定义,通常可以解决这个问题。

当PHP报错未定义全局变量时,意味着你在代码中使用了一个未声明的全局变量。这可能是因为你没有正确初始化或赋值该变量,或者你在使用之前没有声明它。

解决此问题的方法是确保在使用全局变量之前先声明并赋值它,或者检查是否存在拼写错误或语法错误。

另外,你还可以使用isset()函数来检查变量是否已定义,以避免报错。