不得不提的问题:static 与const 在函数中、在类中、在方法中的作用与区别?

不得不提的问题:static 与const 在函数中、在类中、在方法中的作用与区别?

不得不提的问题:static 与const 在函数中、在类中、在方法中的作用与区别?

我问,并非为一人所问,因为视频中是零星讲的并不系统也没有归纳,希望老师讲解并做成辅导材料,我们在视频中非常忽略面向对象与MVC的讲解,特别在面向对象中重点讲了实例方法属性,但类的属性与方法不是很全面。

麻烦了!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕查理 2019-02-19 14:05:48

您好,并不需要作为参数传入,直接使用即可。如果const修饰的属性名作为参数传入会发现与const修饰的属性并不是同一个内容。

  class student{
    const girl='123';
    public function sum($girls){
      echo student::girl;
      echo $girls;
    }
  }
  $a = new student();
  echo student::girl;
  $a->sum("女");

祝学习愉快!

  • 提问者 轩辕小齐V #1
    老师元宵节快乐!“如果const修饰的属性名作为参数传入会发现与const修饰的属性并不是同一个内容。”您的这句我没有明白什么意思?
    2019-02-19 16:01:55
  • 好帮手慕查理 回复 提问者 轩辕小齐V #2
    您好,抱歉前面的代码在写传参时多了一个s,根据前面代码,并将sum方法的参数改为$girl理解。可以发现参数$girl与常量girl并不是同一个内容。常量在使用时直接使用即可,并不需要作为参数进行传递。祝学习愉快!
    2019-02-19 17:53:48
好帮手慕查理 2019-02-18 15:41:17

您好,const在php的类内部只可以修饰成员属性,不可以修饰方法。常量是属于整个类的,而不是属于某个对象,所以在调用的时候需要使用类名加域名修饰符。且定义之后不可修改。

static在类中可以修饰成员属性,成员方法。且static修饰的成员变量的值是可以修改的

祝学习愉快!

  • 提问者 轩辕小齐V #1
    谢谢,可以把const修饰的类属性,作为参数传入实例(对象)方法中么?
    2019-02-19 12:49:59
  • 提问者 轩辕小齐V #2
    老师 类的方法 是可以被对象或者$this调用的对不?但是类的属性与常量 是不能被对象或者$this 调用对么?
    2019-02-20 20:29:17
  • 好帮手慕查理 回复 提问者 轩辕小齐V #3
    您好,类的方法、属性是可以被对象或者$this调用。常量是用 类名::常量名 调用。祝学习愉快!
    2019-02-21 09:48:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师