PHP中的=>->和::的用法
PHP中=>和->以及::符号的用法
->的用法
- 插入式解引用操作符
- 用于类里,访问类里的函数或对象,就是在类里面定义了一个函数,使用->可以调用这个类里面的函数
<?php class test{ function do_test(){ echo "doing foo."; } } $bar = new test; $bar = do_test(); ?>
- ->用来引用对象的成员(属性和方法),即可以调用类里面定义的函数和变量
$arr=['a' => 123,'b' => 456]; echo $arr['a']; print_r($arr); class A{ public $a=123; public $b=456; } $obj = new A(); echo $obj -> a; print_r($obj);
=>的用法
创建关联数组时,经常使用=>来操作数组
$new_array=array(in => 'reply',side => 'left',padx => 2m);
如果需要使用数字大于等于的符号,应该使用>=而不是=>
php中数组默认键名为整数,也可以自己定义任意字符键名,最好有实际意义,例如
$css=array('style' => '0';'color'=>'green'); $css['style']='0',$css['color']='green';
综上,=>的作用就是用来给数组中的值赋值
$arr=array('one' => 1);
array['one'] = 1;
::的用法
- 双冒号操作符,即作用域限定操作符,可以访问静态,const,类中重写的属性和方法
用变量在类定义外部访问
class fruit{
const CONST_VALUE = 'fruit color';
}
$classname = 'fruit';
echo $classname::CONST_VALUE;
echo fruit::CONST_VALUE;
在类定义外部使用
<?php
class fruit{
const const_value = 'fruit color';
}
class apple extends fruit
{
public static $color = 'red';
public static function doubleColon(){
echo parent::CONST_VALUE . '\n';
echo self::$color . '\n';
}
}
apple::doubleColon();
?>
调用parent方法
<?php
class fruit
{
protected function showcolor(){
echo "fruit::showcolor()\n";
}
class apple extends fruit
{
public function showcolor()
{
parent::showcolor();
echo "apple::showcolor()\n";
}
}
}
$apple = new apple();
$apple = showcolor();
?>
面向对象self和parent的区别
<?php
class Par{//父类
public static $name = '小红漂亮';
const TITLE = '阿里巴巴';
}
class Chi extends Par //子类
{
public static $name = '小黄最帅';//子类静态属性
const TITLE = '刘强东|京东';//子类常量
public function demo()
{
$str = '自己的静态属性:'.self::$name;
$str .= '<br>父类的静态属性:'.parent::$name;
$str .= '<br>自己的常量强东:'.self::TITLE;
$str .= '<br>父类的常量阿里:'.parent::TITLE;
echo $str;
}
}
$obj = new Chi();
$obj->demo();
- 相同点:self和parent都是调用父类的属性或者方法
- 不同点:如果两个属性一样,假如都叫$name ,那么self::调用的是自己类中的,parent::则是调用父类的
php中extends
在php中,extends关键字用于定义类的继承,语法为
class 子类 extends 父类{}
通过该关键字可以实现单继承,一个类只能从另一个类中继承数据,但一个类可以有多个子类
即一个子类只能有一个父类,但是一个父类可以有多个子类,一对多的关系
在c++中,一个子类可以继承一个基类,也可以继承多个基类,继承一个基类称为单继承,继承多个基类,称为多继承
但是在php中没有多继承,只能使用单继承,也就是说,一个类只能直接从另一个类中继承数据,但是一个类可以有多个子类
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 h3110w0r1d's Blog!