PHP中的=>->和::的用法

2024-02-19 19:47:10 浏览数 (1)

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;

::的用法

  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();
  1. 相同点:self和parent都是调用父类的属性或者方法
  2. 不同点:如果两个属性一样,假如都叫$name ,那么self::调用的是自己类中的,parent::则是调用父类的

php中extends

在php中,extends关键字用于定义类的继承,语法为

代码语言:javascript复制
class 子类 extends 父类{}

通过该关键字可以实现单继承,一个类只能从另一个类中继承数据,但一个类可以有多个子类

即一个子类只能有一个父类,但是一个父类可以有多个子类,一对多的关系

在c 中,一个子类可以继承一个基类,也可以继承多个基类,继承一个基类称为单继承,继承多个基类,称为多继承

但是在php中没有多继承,只能使用单继承,也就是说,一个类只能直接从另一个类中继承数据,但是一个类可以有多个子类

0 人点赞