本文目录一览:
- 1、PHP类中的魔法方法有哪些
- 2、PHP怎么调用其他类的方法
- 3、php 类名::方法
- 4、PHP类中的__set()和__get()方法用在什么地方?可以用例子说明一下么...
- 5、PHP类的构造方法
PHP类中的魔法方法有哪些
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(),__wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()
注意:PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。
详细可以查看网页链接
PHP怎么调用其他类的方法
在Java的调用方法是import,而在PHP中没有import这个函数,一般PHP中调用其他类是用到require(),具体PHP调用其他类的方法如下:
1、首先应该先有一个文件名为tool.php的文件,在文件中声明一个类。
2、然后需要有另一个文件名为main.php的文件,在文件中调用上面的类。方法如下。
扩展资料:
类是变量与作用于这些变量的函数的集合。使用下面的语法定义一个类:
?php
class Cart { var $items; // 购物车中的物品
// 将 $num 个 $artnr 物品加入购物车
function add_item($artnr, $num) {
$this-items[$artnr] += $num;
} // 将 $num 个 $artnr 物品从购物车中取出
function remove_item($artnr, $num) {
if ($this-items[$artnr] $num) {
$this-items[$artnr] -= $num; return true;
} elseif
($this-items[$artnr] == $num) {
unset($this-items[$artnr]); return true;
} else {
return false; }
}
} ?
上面的例子定义了一个 Cart 类,这个类由购物车中的商品构成的数组和两个用于从购物车中添加和删除商品的函数组成。
参考资料来源:百度百科-php类
php 类名::方法
::是静态访问方式,只和类本身相关而和类对象没有关系,所以直接调用是类名::方法名
因为PHP语言本身就是一个不够严谨的语言(或者换句话说,比较灵活),所以当一个方法只要是public(像楼主那样的缺省的也为public类型)并且该方法中没有使用代表对象的$this就可以使用::来调用,php在解析的时候会自动将其以静态方法解析调用。当然在PHP5以后,就引入了static public function func(){}这种方式声明,所以如果在PHP5上,并且报错机制是比较全的话,直接调用一个没有static声明的方法的时候,就会提示一个notic了···
PHP类中的__set()和__get()方法用在什么地方?可以用例子说明一下么...
在PHP类中的__set()和__get()方法是针对protect或private变量的,不针对public变量。因为对protect或 private变量在类外不可直接访问,可在类中定义一个public方法来访问这些变量,而__set()和__get()方法相当于这些public 方法,但是在类外的操作时表面上相当于直接访问,但本质上还是通过__set()和__get()方法体内的判断与操作。对于一个类中有多个 protect或private变量,用一对__set()和__get()方法就可操作,编译器将可自己区别用的是哪个变量(由在类外操作时具体的变量名决定,如$object-$name="sss").
如下:
?php
class test
{
var $name;
var $age;
function __set($name,$value)
{
$this-$name = $value ;
}
function __get($name)
{
return $this-$name;
}
}
$a = new test();
$a - name = 5;
echo $a-name . "br/" ;
$a - age = "12";
echo $a-age;
?
输出结果是,5 和 12。
//php类中静态变量可用一般方法或静态方法来操作,但如果在类中用静态方法,则静态方法中不可有非静态的变量。
PHP类的构造方法
构造方法是类中的一个特殊方法。当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须是 __construct() 。所以通常用它执行一些有用的初始化任务。该方法无返回值。
如果子类中定义了构造函数则不会暗中调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。
与构造方法对应的就是析构方法,析构方法会在某个对象的所有引用都被删除或者当对象被显式销毁之前执行的一些操作或者功能。析构函数不能带有任何参数,其名称必须是 __destruct() 。
同样,如果子类中定义了析构函数则不会暗中调用其父类的析构函数。要执行父类的析构函数,需要在子类的析构函数中调用 parent::__destruct()。
注意:在析构函数中抛出一个异常会导致致命错误。
?php
class Construct{
protected $a;
protected $b;
function __construct($a,$b){ //定义构造函数
$this-a=$a;
$this-b=$b;
}
function __destruct(){ //重新定义为初始值
$result=0;
echo '恢复乘积的初始值:'.$result;
}
}
class son extends construct{
private $c;
function __construct($c){
parent::__construct(6,10); //调用父类的构造方法,使用方法:parent::__construct(); 有参数加参数
$this-c=$c;
}
function show(){
$result=$this-a*$this-b*$this-c;
print 'abc的乘积是:'.$result.' ';
}
function __destruct(){
parent::__destruct(); //调用父类的析构函数,使用方式:parent::__destruct();
}
}
$test=new son(12); //实例化对象
$test-show(); //abc的乘积是:720 恢复乘积的初始值:0
?