亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在PHP中:(雙冒號)和->(箭頭)有什么區別?

在PHP中:(雙冒號)和->(箭頭)有什么區別?

PHP
楊__羊羊 2019-07-22 16:27:47
在PHP中:(雙冒號)和->(箭頭)有什么區別?在PHP中訪問方法有兩種不同的方法,但是有什么不同呢?$response->setParameter('foo', 'bar');和sfConfig::set('foo', 'bar');我假設->(大于符號或雪佛龍的破折號)用于變量的函數,以及::(雙冒號)用于類的函數。對,是這樣?是=>賦值運算符只用于分配數組中的數據?這與=賦值操作符用于實例化或修改變量?
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

::用于靜態語境當某些方法或屬性聲明為靜態時:

class Math {
    public static function sin($angle) {
        return ...;
    }}$result = Math::sin(123);

此外,::運算符(范圍解析運算符,a.k.a)帕馬耶姆·內庫多塔耶姆)在調用父類的方法/屬性時,在動態上下文中使用:

class Rectangle {
     protected $x, $y;

     public function __construct($x, $y) {
         $this->x = $x;
         $this->y = $y;
     }}class Square extends Rectangle {
    public function __construct($x) {
        parent::__construct($x, $x);
    }}

->用于動態語境當您處理某個類的某個實例時:

class Hello {
    public function say() {
       echo 'hello!';
    }}$h = new Hello();$h->say();

順便說一句:我不認為在沒有OOP經驗的情況下使用Symfony是個好主意。


查看完整回答
反對 回復 2019-07-22
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

實際上,通過這個符號,我們可以調用一個靜態的、不依賴于其他初始化的類方法.

class Test {

    public $name;

    public function __construct() {
        $this->name = 'Mrinmoy Ghoshal';
    }

    public static function doWrite($name) {
        print 'Hello '.$name;
    }

    public function write() {
        print $this->name;
    }}

在這里,doW區()函數不依賴于任何其他方法或變量,它是一個靜態方法。這就是為什么我們可以通過這個操作符調用這個方法而不初始化這個類的對象。

Test::doWrite('Mrinmoy');   // Output: Hello Mrinmoy.

但如果你想打電話給write方法將生成錯誤,因為它依賴于初始化。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 383 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號