PHP變數

高洛峰
高洛峰原創
2016-10-09 12:43:591322瀏覽

變數的宣告

PHP變數宣告必須是$(美元符號)+變數名稱命名,同時在=(賦值運算子)後進行賦值

宣告後的變數不是僅可以在一個使用,它還可以在當前頁面所有開啟使用,包括include和require引入的文件,當然在函數中是局部變量,另當別論

在使用該變量之前,我們通常使用isset()和empty()兩個函數, isset()是檢查變數是否設置,empty()則是檢查變數是否為空,unset()則是釋放變量,在這裡推薦使用!empty()存在且不能為空

php變數的命名大小寫區分,且不能是關鍵字

Demo

<?php
//声明变量a
$a="hello world";
?>
<?php 
//判断变量a是否存在,如果存在,就打印,echo为打印函数
if(!empty($a)){
    echo "变量存在";
    echo $a;
}

//销毁变量a
unset($a);

if(empty($a)){
    echo "变量不存在!";
}
?>

可變變數

可變變數的意思是一個變數的變數名稱可以動態的設定和使用。一個普通的變數透過宣告來設置,然後可變變數取得這個普通變數的值作為這個可變變數的變數名,可變變數宣告是以$$開頭。

Demo

<?php
//声明变量$a
$a="hello";
//声明可变变量$$a
$$a="world";

//将会全部打印"hello world"
echo "$a $hello";
echo "$a ${$a}"
?>

變數的引用賦值

PHP的引用就是在變數或函數、物件等前面加上&符號。它其實相當於變數的一個別名,改變其中任一個變數的值,另一個變數的值就會跟著改變。但是它也不像C語言中的變量引用賦值那樣,如果我用unset()函數銷毀其中任意一個變量,另一個變量依舊存在。

Demo

<?php
//声明变量$a
$a="hello";
//声明变量$b
$b=&$a;

$b="world";
//将会打印"word world"
echo "$a $b";

unset($a);

//将会打印world
echo $b;
?>

變數的型別

PHP支援八種原始型別。具體的分為四種標量類型:string(字串)、integer(整數)、float(浮點型,還有更高精度的double)和boolean(布林型),兩種複合類型: array(數組)和object(物件),兩種特殊類型resource(資源)和NULL。數組和物件的聲明可以參考Demo中的格式。這裡的陣列我們用array()來構建,它的參數是按照key=>value格式用逗號隔開的。

Demo

<?php
$bool=true;
$str="hello";
$int=123;
$float=1.2e3;//相当于1.2乘以10的三次方
$arr=array("key1"=>12,"key2"=>true);

//声明对象类型
class Person{
    var $name;
    function say(){
        echo "I am happy";
    }
}

$p=new Person();
$p->name="Tom";
$p->say();

//var_dump()直接输出变量类型
var_dump($bool);
var_dump($str);
var_dump($int);
var_dump($float);
var_dump($arr);
var_dump($p);

//输出结果为 
//I am happy
//bool(true) string(5) "hello" int(123) float(1200) 
//array(2) { ["key1"]=> int(12) ["key2"]=> bool(true) } 
//object(Person)#1 (1) { ["name"]=> string(3) "Tom" }
?>

資源類型

資源是一種特殊變量,保存了到外部資源的一個引用。資源是透過專門的函數來建立和使用的。由於資源類型變數保存有為開啟檔案、資料庫連線、圖形畫布區域等的特殊句柄,因此將其它類型的值轉換為資源沒有意義。

Demo

<?php
//以写的方式打开本目录下的1.txt文件
$file=fopen("1.txt","w");

//连接本地数据库
$mysql=mysql_connect("localhost","root","root");
?>

NULL類型

在PHP中被認為為NULL類型的有三種情況

將變數直接賦值為NULL

聲明的變數未被賦值

被稱為函數

偽型別

PHP偽型有三種,分別是:mixed混合型別、number數位型別、callback回呼型別。

mixed說明一個參數可以接受多種不同的類型,但並不是所有的類型,例如str_replace()可以接受字串和數組,gettype()可以接受任何類型。

number參數可以接受integer整數和float浮點型。

callback回呼類型是諸如call_user_func()函數就可接收使用者自訂的函數作為一個參數。 callback函數不但可以是一個函數,也可以是一個物件的方法,靜態類別的方法也可以。一個php函數用函數名稱字串來傳遞,可以傳遞任何內建的或使用者自訂的函數,除了例如array(),echo(),empty(),eval(),exit(),isset(),list (),print(),unset()等這些內建函數。

自動型別轉換

這種轉換通常發生在不同類型混合運算時,它遵循以下原則

如果是布林類型,將true變成1,false變成0

如果是null,將會變成數值0

如果是float和int混合運算,轉換成float型別

如果是字串,則提取字串中的數字,例如"123.45abc"變成123.45,若沒有數字,則是0

強制類型轉換

PHP 中的類型強制轉換和C 中的非常像:在要轉換的變數之前加上用括號括起來的目標類型。允許的強制轉換有:

(int),(integer) - 轉換成整數

(bool),(boolean) - 轉換成布林型

(float),(double),(real) - 轉換成浮點型

(string) - 轉換成字串

(array) - 轉換成陣列

(object) - 轉換成物件

同時,在使用中我們可以透過一些函數判斷變數類型。判斷變數類型常用的函數主要有下列幾個:
gettype()傳回變數型別、is_array()、is_bool()、is_float()、is_double()、is_integer()、is_null()、is_numeric()、is_object( )、is_resource()、is_string()和is_callable()判斷是否為有效函數

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多