本文目錄一覽:
ThinkPHP3.2中如何使用類函數靜態調用
common/里建一個 common.php文件。裡面存函數,這個文件是默認載入的,如果不是 common.php 就得手動載入。
直接建一個 common.php 文件寫在裡面。記得刪除緩存。
可以寫進ThinkPHP/Common/functions.php這個裡面,也可以ThinkPHP/Common/extend.php,但需要載入
載入的話需要理清他的架構,thinkphp載入有很簡單的自定義的一套方法,TP中調用自定義的函數庫應該在項目的config.php里配置
php中怎麼調用方法中的靜態變數?
static
變數是php中的變數作用範圍的一個重要特性
靜態變數僅在局部函數域中存在且只被初始化一次,當程序執行離開此作用域時,其值不會消失,會使用上次執行的結果
一個普通的變數,如
$message
在它所在的函數執行完之後就被釋放了
即第二個function執行10次,每次執行完後,$message變數被釋放,所以每次都是1
變數前加了static後,該變數在它所在的函數執行完後不會被釋放
即第一個function每次被執行後,static
$message沒有被釋放,它將被繼續累加
php 使用靜態方法的幾個注意事項說明
1. 即使類中的方法並未用static聲明,但其未使用到可改變的類成員變數,在外部仍可用操作符::來調用;
2. 以靜態方式(用::操作符)調用的方法中$this的取值是由調用時的上下文決定的!而不是定義他的類!!
例如以下的代碼:
?php
class TestClass1
{
public $normal_v = ‘normal_v from TestClass1’;
public static $STATIC_V = ‘STATIC_V from TestClass1’;
public function test_func1()
{
echo $this-normal_v.’br /’.self::$STATIC_V;
}
}
class TestClass2
{
public $normal_v = ‘normal_v from TestClass2’;
public static $STATIC_V = ‘STATIC_V from TestClass2’;
public function test_func2()
{
TestClass1::test_func1();
}
}
$t2 = new TestClass2();
$t2-test_func2();
這段代碼是輸出會是什麼呢,我原以為會是normal_v from TestClass1 br / STATIC_V from TestClass1,測試發現其實我錯了,正確的輸出是:
normal_v from TestClass2
STATIC_V from TestClass1
說明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調用的,其內部的$this變數則是由TestClass2決定的!
其實這兩個類的關係應該屬於”雙向關聯”.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283701.html