PHP中=>和->以及::符号的用法
->的用法
插入式解引用操作符
用于类里,访问类里的函数或对象,就是在类里面定义了一个函数,使用->可以调用这个类里面的函数
代码语言:javascript复制<?php
class test{
function do_test(){
echo "doing foo.";
}
}
$bar = new test;
$bar = do_test();
?>
->用来引用对象的成员(属性和方法),即可以调用类里面定义的函数和变量
代码语言:javascript复制$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);
=>的用法
创建关联数组时,经常使用=>来操作数组
代码语言:javascript复制$new_array=array(in => 'reply',side => 'left',padx => 2m);
如果需要使用数字大于等于的符号,应该使用>=而不是=>
php中数组默认键名为整数,也可以自己定义任意字符键名,最好有实际意义,例如
代码语言:javascript复制$css=array('style' => '0';'color'=>'green');
$css['style']='0',$css['color']='green';
综上,=>的作用就是用来给数组中的值赋值
代码语言:javascript复制$arr=array('one' => 1);
array['one'] = 1;
::的用法
- 双冒号操作符,即作用域限定操作符,可以访问静态,const,类中重写的属性和方法
用变量在类定义外部访问
代码语言:javascript复制class fruit{
const CONST_VALUE = 'fruit color';
}
$classname = 'fruit';
echo $classname::CONST_VALUE;
echo fruit::CONST_VALUE;
在类定义外部使用
代码语言:javascript复制<?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方法
代码语言:javascript复制<?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的区别
代码语言:javascript复制<?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关键字用于定义类的继承,语法为
代码语言:javascript复制class 子类 extends 父类{}
通过该关键字可以实现单继承,一个类只能从另一个类中继承数据,但一个类可以有多个子类
即一个子类只能有一个父类,但是一个父类可以有多个子类,一对多的关系
在c 中,一个子类可以继承一个基类,也可以继承多个基类,继承一个基类称为单继承,继承多个基类,称为多继承
但是在php中没有多继承,只能使用单继承,也就是说,一个类只能直接从另一个类中继承数据,但是一个类可以有多个子类