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
?>