中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中靜態方法怎么訪問非靜態方法

發布時間:2022-03-22 17:02:42 來源:億速云 閱讀:212 作者:iii 欄目:編程語言

本篇內容主要講解“php中靜態方法怎么訪問非靜態方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php中靜態方法怎么訪問非靜態方法”吧!

PHP中靜態方法可以訪問非靜態方法;可以先實例化對象,然后再調用對象中的非靜態方法即可,靜態調用非靜態方法是可以的,但是靜態調用構造方法是不可以的。

本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

php中靜態方法可以訪問非靜態方法嗎

如果我們調用了非靜態方法會怎么樣呢?首先做測試。

<?php
class test{
    function test() {
        echo 'it works';
    }
}
test::test();
?>

執行以下,返回錯誤如下:

Fatal error: Non-static method test::test() cannot be called statically in /home/×××/test.php
on line 7 Call Stack: 0.0002 332548 1. {main}() /home/×××/test.php:0

這個時候,可能大家就會認為靜態調用非靜態方法是行不通的了,但其實,結論下的過早了,因為test()這個方法比較特殊,與類同名,是構造方法。 我們繼續測試。

<?php
class test {
    function test() {
        echo 'it works';
    }
    function test2() {
        echo 'it works too';
    }
}
test::test2();
?>

執行結果:

it works too

這說明,靜態調用非靜態方法是可行的,但是靜態調用構造方法是不可以的。為了驗證這個結論,我又做了如下測試:

<?php
class test{
    static function test() {
        echo 'it works';
    }
}
test::test();
?>

執行的結果如下:

Fatal error: Constructor test::test() cannot be static in /home/xxx/test.php on line 9

構造方法不能聲明靜態,所以上面的推論正確。

但這個結果的確是很特殊的,因為可能只有PHP可以靜態調用非靜態方法,我用Java做了實驗,如果靜態調用非靜態方法會報如下錯誤:

Cannot make a static reference to the non-static method showString() from the type HelloWorldApp

到此,相信大家對“php中靜態方法怎么訪問非靜態方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

恩平市| 永顺县| 双柏县| 台州市| 舟山市| 普陀区| 阿瓦提县| 翁源县| 金华市| 青川县| 鹿泉市| 会同县| 黄平县| 进贤县| 钟祥市| 八宿县| 深州市| 奉化市| 当阳市| 慈利县| 淮滨县| 安龙县| 芒康县| 汕头市| 招远市| 湖州市| 江都市| 漠河县| 喀喇| 宝鸡市| 闵行区| 常山县| 墨江| 甘洛县| 弋阳县| 辽阳市| 体育| 辉县市| 贺兰县| 龙游县| 石门县|