PHP =>、->、::、符号用法与含义

  • => 符号的用法与含义

    其实就是 JSON 字典给 Key 设置 Value 值,通常在其他语言中字典设值是这样的:{ style: 0, color: 'green'},可以理解为 :

    $css = array('style'=>'0',‘color’=>'green');
    
    $css['style'] == '0' // true
    $css['color'] == 'green' // true
    
  • -> 符号的用法与含义

    可以理解成其他语言的 . 点语法,PHP 中用 -> 代替点语法获取对象属性方法。

    <?php
      // 数组初始化
      $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);
    ?>
    

    输出结果:

    123Array ( [a] => 123 [b] => 456 ) 
    123A Object ( [a] => 123 [b] => 456 )
    
  • :: 符号的用法与含义

    可以理解成其他语言的 类方法 调用,双冒号操作符即作用域限定操作符 Scope Resolution Operator 可以访问 静态const类中重写的属性与方法

    1、用变量在类定义外部访问

    <?php
      class Fruit {
        const CONST_VALUE = 'Fruit Color';
      }
      $classname = 'Fruit';
      echo $classname::CONST_VALUE; // As of PHP 5.3.0
      echo Fruit::CONST_VALUE;
    ?>
    

    2、在类定义外部使用 ::

    <?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();
    ?>
    

    3、调用 parent 方法

    <?php
      class Fruit {
        protected function showColor() {
          echo "Fruit::showColor()\n";
        }
      }
      class Apple extends Fruit {
        // Override parent's definition
        public function showColor() {
          // But still call the parent function
          parent::showColor();
          echo "Apple::showColor()\n";
        }
      }
      $apple = new Apple();
      $apple->showColor();
    ?>
    

    4、使用作用域限定符

    <?php
      class Apple {
        public function showColor() {
          return $this->color;
        }
      }
      class Banana {
        public $color;
        public function __construct() {
          $this->color = "Banana is yellow";
        }
        public function GetColor() {
          return Apple::showColor();
        }
      }
      $banana = new Banana;
      echo $banana->GetColor();
    ?>
    

    5、调用基类的方法

    <?php
      class Fruit {
        static function color() {
         return "color";
        }
        static function showColor() {
          echo "show " . self::color();
        }
      }
      class Apple extends Fruit {
        static function color() {
          return "red";
        }
      }
      Apple::showColor();
      // output is "show color"!
    ?>
    
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值