本節用類與靜態變數改造之前的例子:php根據命令列引數生成配置檔案
ghostinit.php:
<?phpclass
ghostinit
static
function
make()
}?>
ghost:
#!/usr/bin/php
<?php
require "ghostinit.php";
$result = '';
if( $argc >= 2)
echo
$result . php_eol;
執行結果:
ghostwu@dev:~/php/php1/3$ lsdone ghost ghostinit.php
ghostwu@dev:~/php/php1/3$ ./ghost init
pls input project name?test
pls input author?ghostwu
您輸入的專案資訊如下:test
ghostwu
ghostwu@dev:~/php/php1/3$ ls
done ghost ghostinit.php
ghostwu@dev:~/php/php1/3$ ./ghost make
ghostwu@dev:~/php/php1/3$ ls
done ghost ghostinit.php ghost.phar
ghostwu@dev:~/php/php1/3$ ./ghost -v
ghost version is 1.1ghostwu@dev:~/php/php1/3$
callstatic繼續改造:
ghostinit.php:
<?phpclass
ghostinit
static
function
make()
static
function __callstatic( $m, $args
) }
?>
ghost:
#!/usr/bin/php
<?php
require "ghostinit.php";
$result = '';
if( $argc >= 2)
else
}echo
$result . php_eol;
把配置獨立成乙個類
ghostconfig.php: 把這兩個屬性注釋,也可以正常執行, php允許動態增加成員變數(類的屬性)
<?phpclass
ghostconfig
ghostinit.php
<?phprequire( "ghostconfig.php");
class
ghostinit
static
function
make()
static
function __callstatic( $m, $args
) }
?>
利用頂級類stdclass代替config類,這樣就減少了乙個類,這個config類目前只用到了一次,完全可以用stdclass再次簡化
<?phpclass
ghostinit
static
function
make()
static
function __callstatic( $m, $args
) }
?>
生成配置資訊,再次簡化,變成公共模組:
staticfunction
init()
static
function getconfig( $conf
)
return
$std
; }
靜態變數與靜態方法
static 可實現所有的物件共享乙個成員變數。被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件所共享。訪問static成員變數有兩種方式 直接用類名.成員變數名訪問 定義類的物件,使用物件.成員變數名訪問。public class name ...
靜態變數與靜態方法
使用static修飾的方法稱作靜態方法,又稱類方法。同樣的,使用static修飾的變數又稱作類變數或者靜態變數。靜態方法有如下特點 1 應該通過類名直接呼叫,不用通過引用呼叫。2 方法內部 只能夠使用本方法內的區域性變數 方法的引數 靜態變數和靜態方法。不能使用非靜態的變數和非靜態的方法。同樣也不能...
靜態變數與靜態方法
被static修飾的成員變數就是靜態變數。靜態變數被該類下所有的物件所共享。物件空間中就沒有這個成員變數,存在方法區的靜態區。獲取值 物件名.屬性名 實際開發堅決不用 類名.屬性名 修改值 物件名.屬性名 新值 實際開發堅決不用 類名.屬性名 新值 示例 person類 public class p...