PHP實踐之路(四)PHP中常量和變數

cyxlzzs發表於2013-06-28

PHP實踐之路(目錄索引)


PHP中的常量和變數

1、常量

一個常量一旦被定義,就不能再改變或者取消定義
a、常用系統預定義常量介紹
TRUE:表示布林值的true
FALSE:表示布林值的false
_FILE_:當前php檔名
_LINE_:當前行數
PHP_OS:當前作業系統
PHP_VERSION:當前php版本
實驗時間
<?php
echo __FILE__;      //D:\php_workspace\first_php\index.php
echo "<br />";       //換行顯示
echo __LINE__;      //4
echo "<br />";       //換行顯示
echo PHP_OS;        //WINNT
echo "<br />";       //換行顯示
echo PHP_VERSION;   //5.4.15
echo "<br />";       //換行顯示
echo __DIR__;       //D:\php_workspace\first_php
echo "<br />";       //換行顯示
?>
b、自定義常量
使用difine()函式來定義自己的常量,如define("MY_CONSTANT","hello")這裡就定義了一個MY_CONSTANT常量
在PHP 5.3.0 以後可以使用const關鍵字定義常量,如const MY_CONSTANT2="hello2";
實驗時間
<?php
define("MY_CONSTANT","hello");
echo MY_CONSTANT;           //hello
echo "<br />";
const MY_CONSTANT2="hello2";
echo MY_CONSTANT2;          //hello2
?>


2、變數

a、PHP 中的變數用一個美元符號後面跟變數名來表示。變數名是區分大小寫的
b、變數名與 PHP 中其它的標籤一樣遵循相同的規則。一個有效的變數名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線
c、兩種賦值方式:一種是傳值賦值,另一種是引用賦值
傳值賦值為當一個變數的值賦予另外一個變數時,改變其中一個變數的值,將不會影響到另外一個變數
引用賦值:將一個 & 符號加到將要賦值的變數前。改動新的變數將影響到原始變數,反之亦然(只有有名字的變數才可以引用賦值)
d、變數的範圍有全域性和區域性的區分,PHP 中全域性變數在函式中使用時必須申明為global或者使用$GLOBALS陣列
e、靜態變數。講一個變數定義為靜態變數需要在變數前加上static關鍵字
f、一個可變變數獲取了一個普通變數的值作為這個可變變數的變數名,用兩個$表示,如$$a。比如$a="hello";那麼$$a相當於重新定義了一個新變數$hello
g、$this是個特殊的變數,它不能被賦值。在object物件中表示該物件本身。如物件$foo有一個成員變數$num,引用是可以用$this->num
好了講了這麼多,該到實驗動手時間了
<?php
$a=11;
var_dump($a);       //int 11
$b=$a;              //傳值賦值
var_dump($b);       //int 11;
$c=&$a;             //引用賦值
var_dump($c);       //int 11;
$c=12;
var_dump($a);       //int 12
var_dump($b);       //int 11
$a="hello";
var_dump($c);       //string 'hello' (length=5)

//使用global引入全域性變數
function my_func()
{
    //var_dump($a);   //區域性變數中沒有$a,出錯
    global $a;
    var_dump($a);   //string 'hello' (length=5)
}

//測試使用$GLOBALS來使用全域性變數
function my_func2()
{
    var_dump($GLOBALS["b"]);    //int 11
}

function my_func3()
{
    $count=0;
    $count++;
    var_dump($count);
}
function my_func4()
{
    static $count=0;    //靜態變數
    $count++;
    var_dump($count);
}
my_func();      //呼叫my_func函式
my_func2();     //呼叫my_func2函式

//測試靜態變數的威力
my_func3();     //int 1;
my_func3();     //int 1;
my_func4();     //int 1;
my_func4();     //int 2;

//以下是可變變數的實驗
$str="Hello";
var_dump($str); //string 'Hello' (length=5)
$$str="World";
echo "$a $Hello";   //Hello World
echo "<br />";


class Foo{
    private $num=1;
    function func()
    {
        echo $this->num;        //$this變數的使用
    }
}
$foo=new Foo;   //定義一個$foo物件
$foo->func();   //1

?>


版權宣告:本文為博主原創文章,未經博主允許不得轉載。

相關文章