日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php protected const,关于const:PHP类常量 – 公共,私有还是受保护?

發布時間:2023/12/2 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php protected const,关于const:PHP类常量 – 公共,私有还是受保护? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假設常量屬性是自動公開的,對嗎?有沒有辦法讓它們成為私有的或受保護的?

事先謝謝。

隱藏它們的原因是什么?即使它們是公開的——它們是只讀的。

常量應該是公共的,因為它們描述的是關于類的不可變事實,而不是狀態或它。所以隱藏它們是沒有價值的。

可能在將來的版本中用__getStatic偽造它們。一般來說,在腳本語言中是否需要訪問修飾符是有問題的。(javascript/python更加面向對象,不需要它們。)

是啊,回想起來有點傻。感謝您的回復。

我認為這根本不是一個愚蠢的問題;私有類常量會很有用:用于類中的內部使用…公共方法可以使用它們,但外部代碼不應該依賴它們…API可能會更改。

首先,如果您想創建一個數據庫類,那么將主機、用戶名、服務器、數據庫聲明為私有常量是有意義的,對嗎?

在ASP.NET中,如果我想存儲一些類需要但在類外部不需要的靜態信息,我將使用存儲在頂部、易于找到和更改的私有常量。

歷史上,只要加載了類,并且沒有辦法更改它,類常量總是可以公開訪問的。

從PHP7.1開始,默認情況下它們保持公共狀態,但現在可以應用訪問修飾符。以下是發行說明中的示例:

class ConstDemo

{

const PUBLIC_CONST_A = 1;

public const PUBLIC_CONST_B = 2;

protected const PROTECTED_CONST = 3;

private const PRIVATE_CONST = 4;

}

類常量應該具有私有/受保護的選項,因為公共會公開類的內部細節,其他類/代碼可能會誤認為它們可以使用,因為它們是公共的。

很高興知道更改私有常量只會影響它在其中定義的類。不幸的是,我們沒有這個選擇。

記得你學習對象設計和分析時的情景…您給類方法和屬性盡可能多的限制性訪問,然后根據需要放松它們(更難回到另一種方式,因為其他類/代碼開始使用它們,這樣會破壞其他代碼)。

解決辦法

最好的辦法是只創建一個私有或受保護的變量,并用大寫字母表示它是一個常量。您可以始終創建一個名為constant($value-to-be-constant)的類,該類實現正確的magic方法/spl接口,以防止更改它。

最好的辦法就是創建一個私有或受保護的static變量…

我知道這個問題已經6歲了

php 7.1(當前為rc1)允許指定類常量的可見性。

class Token {

// Constants default to public

const PUBLIC_CONST = 0;

// Constants then also can have a defined visibility

private const PRIVATE_CONST = 0;

protected const PROTECTED_CONST = 0;

public const PUBLIC_CONST_TWO = 0;

//Constants can only have one visibility declaration list

private const FOO = 1, BAR = 2;

}

附加信息

類常量可見性上的RFC

關于類常量可見性的博客文章

從php7.1開始,可以使用訪問修飾符(public、private或protected定義類常量。請看下面的示例:

class superheroes{

public const kal_el = 'Superman';

protected const bruce_wayne = 'Batman'; # works php7.1 onwards ? ?private const anthony_stark = 'Iron Man'; # works php7.1 onwards

public static function show_remaining(){

echo self::bruce_wayne, '
';

echo self::anthony_stark, '
';

}

}

echo superheroes::kal_el, '
';

superheroes::show_remaining();

學分:http://bellupper.io/post/48/defining-class-constants-in-php

總結

以上是生活随笔為你收集整理的php protected const,关于const:PHP类常量 – 公共,私有还是受保护?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。