PHP self是指當前正在執行的PHP腳本文件名。它允許您以一種動態的方式來引用當前腳本,無論是在包含文件中還是在一個函數內。
一、獲取當前腳本文件名
通過使用PHP_SELF變量,您可以獲取當前正在執行的腳本的文件名。PHP_SELF是包含當前腳本的文件的名稱,該文件在服務器上運行。
<?php echo $_SERVER['PHP_SELF']; ?>
以上代碼輸出的是當前腳本的文件名,這對於形成自我引用URL(如表單操作、處理腳本等)非常有用。
二、避免腳本文件名硬編碼
硬編碼當前腳本文件名可能會導致一些問題,例如,當您將腳本移動到不同的服務器或文件夾時,這個硬編碼將不起作用。為了避免這些問題,您可以使用下面的代碼來獲取當前腳本文件名:
<?php $currentPage = basename($_SERVER['PHP_SELF']); ?>
此代碼將返回當前腳本的文件名,並將其分配給變量$currentPage。這個技巧可以確保您的代碼在不同的環境中發揮作用。
三、使用self引用當前類
在PHP中,self關鍵字代表當前類。通過使用self關鍵字,您可以引用當前類中的屬性和方法。
class MyClass { private $name = "John"; public function display() { echo self::$name; } }
在上面的示例中,我們使用self::$name來引用當前類中的私有$name屬性。在類的方法中,您可以通過使用self::$methodName來引用當前類中的方法。
要注意的是,當您使用self關鍵字引用當前類時,不需要使用$符號前綴。
四、使用self繼承
當您定義一個子類並想要繼承父類的屬性和方法時,您可以使用self關鍵字。通過使用self關鍵字,子類可以引用父類中的屬性和方法。
class ParentClass { protected $name = "John"; protected function display() { echo "Hello World!"; } } class ChildClass extends ParentClass { public function printName() { echo self::$name; } public function printMessage() { parent::display(); } }
在上面的示例中,ChildClass類繼承了ParentClass類。在ChildClass類中,我們使用self::$name來引用父類中的protected $name屬性。我們也使用parent::display()來引用父類中的display()方法。
五、使用self在類常量中引用當前類
使用self關鍵字,您可以在類常量中引用當前類。
class MyClass { const MY_CONSTANT = 1; public function display() { echo self::MY_CONSTANT; } }
在上面的示例中,我們使用self關鍵字在類常量中引用當前類。我們可以通過使用self::MY_CONSTANT來訪問我們的常量。
六、總結
PHP_SELF變量和self關鍵字是PHP中非常有用的工具,可用於動態引用腳本、引用當前類中的屬性和方法和引用父類中的屬性和方法。
請注意,在使用這些工具時,您需要格外小心,以確保您的代碼在使用self關鍵字時引用了正確的方法和屬性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/294197.html