程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 前端學PHP之變量、數據類型及作用域,php數據類型

前端學PHP之變量、數據類型及作用域,php數據類型

編輯:關於PHP編程

前端學PHP之變量、數據類型及作用域,php數據類型


目錄
[1]變量 變量定義 變量賦值 [2]數據類型 字符串 整數 浮點數 布爾型 數組 對象 NULL 資源 [3]作用域 global static

變量

變量定義

  變量是存儲信息的容器,以$符號開頭,其後是變量名稱。變量名稱必須以字母或下劃線開頭,對大小寫敏感

<?php
$x=5;
//5
echo $x;
//什麼都不輸出
echo $X;
?>

 

變量賦值

  PHP沒有創建變量的命令,變量會在首次為其賦值時被創建

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

 

數據類型

  PHP是一門類型松散的語言,不必告知PHP變量的數據類型,PHP會根據它的值,自動把變量轉換成正確的數據類型。PHP數據類型包括8種:其中包括四種標量類型、兩種復合類型和兩種特殊類型。具體是:字符串、整數、浮點數、布爾、數組、對象、NULL、資源

  [注意]var_dump() 會返回變量的數據類型和值

 

字符串

  字符串可以是引號內的任何文本,引號可以是單引號或雙引號

<?php 
$x = "Hello world!";
//Hello world!
echo $x;
echo "<br>"; 
$x = 'Hello world!';
//Hello world!
echo $x;
?>

<情況1>當字符串中包含引號,有三種解決方案:

  [1]單引號中嵌入雙引號

  [2]雙引號中嵌入單引號

  [3]使用轉義符"\"

<?php 
$str_string1 = '"test"';
$str_string2 = "'test'";
$str_string3 = '\'test\'';
echo $str_string1;
echo "<br />";
echo $str_string2;
echo "<br />";
echo $str_string3;
?>

<情況2>當字符串的引號遇到變量,分為兩種情況:

  [1]當雙引號中包含變量時,變量會與雙引號中的內容連接在一起

  [2]當單引號中包含變量時,變量會被當作字符串輸出

<?php 
$test = 1;
$str_string1 = ' $test ';
$str_string2 = " $test ";
$str_string3 = ' "$test" ';
$str_string4 = " '$test' ";
echo $str_string1;//$test
echo "<br />";
echo $str_string2;//1
echo "<br />";
echo $str_string3;//"$test"
echo "<br />";
echo $str_string4;//'1'
?>

<情況3>當字符串很長時,使用Heredoc結構形式的方法,首先定界符表示字符串(<<<),接著在(<<<)之後提供一個標識符(任意名稱),換行後是字符串,最後以這個標識符結束字符串。注意標識符左右不要有多余的空格

<?php 
$str = <<< G
123
G;
echo $str;//123
?>

 

整數

  PHP整數必須至少有一個數字,不能包含逗號或空格,不能有小數點,正負均可,可以用三種格式規定整數:十進制、十六進制(前綴是0x)或八進制(前綴是0)

<?php 
$x = 5985;
//int(5985)
var_dump($x);
echo "<br>"; 
$x = -345; 
// int(-345)
var_dump($x);
echo "<br>"; 
$x = 0x11; 
// int(17)
var_dump($x);
echo "<br>";
$x = 011; 
// int(9)
var_dump($x);
?>

 

浮點數

  PHP浮點數是有小數點或指數形式的數字

<?php 
$x = 10.365;
//float(10.365)
var_dump($x);
echo "<br>"; 
$x = 2.4e3;
//float(2400)
var_dump($x);
echo "<br>"; 
$x = 8E-1;
//float(0.8)
var_dump($x);
?>

 

布爾型

  PHP布爾型只有兩個值:true或false(不區分大小寫),常用於條件測試。當用echo指令輸出布爾類型時,如果是true,則輸出"1",false則什麼都不輸出

<?php 
    $man = "男";
    $flag = $man == "男";//輸出1
    echo $flag ;
    echo "<br />" ;
    $flag = $man == "女";//什麼都不輸出
    echo $flag;
    var_dump($flag);//bool(false)
?>

 

數組

  PHP數組可以在一個變量中存儲多個值

<?php 
$cars=array("Volvo","BMW","SAAB");
//array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB" }
var_dump($cars);
?>

 

對象

  PHP對象是存儲數據和有關如何處理數據的信息的數據類型。在PHP中,必須明確地聲明對象,但首先必須聲明對象的類。對此,使用class關鍵詞,類是包含屬性和方法的結構。然後在對象類中定義數據類型,然後在該類的實例中使用此數據類型

<?php
class Car
{
    var $color;
    function Car($color="green") {
      $this->color = $color;
    }
    function what_color() {
      return $this->color;
    }
}

function print_vars($obj) {
   foreach (get_object_vars($obj) as $prop => $val) {
     echo "\t$prop = $val\n";
   }
}

$herbie = new Car("white");
echo "\herbie: Properties\n";
print_vars($herbie);
?>

 

NULL

  PHP中的NULL是空類型,對大小寫不敏感,NULL類型只有一個取值,表示一個變量沒有值,當被賦值為NULL,或者尚未被賦值,或者被unset(),這三種情況下變量被認為為NULL

<?php 
 error_reporting(0); //禁止顯示PHP警告提示
 $var;
 var_dump($var);//NULL
 $var1 = null;
 var_dump($var1);//NULL
 $var2 = NULL;
 var_dump( $var2);//NULL
 $var3 = "節日快樂!";
 unset($var3);
 var_dump($var3);//NULL
?>

 

資源

  PHP資源是由專門的函數來建立和使用的,例如打開文件、數據連接、圖形畫布。可以對資源進行操作(創建、使用和釋放)。任何資源,在不需要的時候應該被及時釋放。如果我們忘記了釋放資源,系統自動啟用垃圾回收機制,在頁面執行完畢後回收資源,以避免內存被消耗殆盡

<?php
$file=fopen("data/webroot/resource/f.txt","r");   //打開文件
$con=mysql_connect("127.0.0.1","root","root");  //連接數據庫
if ($file_handle){
    //接著采用while循環(後面語言結構語句中的循環結構會詳細介紹)一行行地讀取文件,然後輸出每行的文字
    while (!feof($file_handle)) { //判斷是否到最後一行
        $line = fgets($file_handle); //讀取一行文本
        echo $line; //輸出一行文本
        echo "<br />"; //換行
    }
}
fclose($file_handle);//關閉文件
?>

 

  [注意]memory_get_usage() 會獲取當前PHP消耗的內存,單位為byte

<?php 
echo $m1 = memory_get_usage(); 
echo "<br />";
$var_string = '123';//320
echo $m2 = memory_get_usage()-$m1; 
echo "<br />";
$n = 123;//272
echo $m3 = memory_get_usage()-$m1-$m2; 
echo "<br />";
$f = 123.00;//272
echo $m4 = memory_get_usage()-$m1-$m2-$m3; 
echo "<br />";
$var_array = array('123');//576
echo $m5 = memory_get_usage()-$m1-$m2-$m3-$m4; 
?>
<?php 
  $string = "就是就是";
 var_dump($string);//string(12) "就是就是"
 echo "<br />";
 $string = 9494;
 var_dump($string);//int(9494)
  echo "<br />";
?>

 

作用域

  PHP有三種不同的變量作用域:local(局部)、global(全局)、static(靜態)

  函數之外聲明的變量有global作用域,只能在函數以外進行訪問;函數內部聲明的變量有local作用域,只能在函數內部進行訪問

<?php
error_reporting(0); //禁止顯示PHP警告提示
$x=5; // 全局作用域

function myTest() {
  $y=10; // 局部作用域
  echo "<p>測試函數內部的變量:</p>";
  echo "變量 x 是:$x<br>";
  echo "變量 y 是:$y";
} 
//無輸出
//10
myTest();
echo "<p>測試函數之外的變量:</p>";
echo "變量 x 是:$x<br>";//5
echo "變量 y 是:$y";//無輸出
?>

 

global關鍵詞

  用於訪問函數內的全局變量

<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; // 輸出 15
?>

  PHP同時在名為GLOBALS[index]的數組中存儲了所有的全局變量,下標存有變量名。這個數組在函數內也可以訪問,並能夠用於直接更新全局變量

<?php
$x=5;
$y=10;

function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y; // 輸出 15
?>

 

static關鍵詞

  通常,當函數完成或執行後,會刪除所有變量,不過,有時需要不刪除某個局部變量。要完成這一點,需要在首次聲明變量時使用static關鍵詞。每當函數被調用時,這個變量所存儲的信息都是函數最後一次被調用時所包含的信息,但要注意的是,這個變量仍然是函數的局部變量

<?php
function myTest() {
   static $x=0;
   echo $x;
   $x++;
}

myTest();//0
echo "<br>";
myTest();//1
echo "<br>";
myTest();//2
echo "<br>";
myTest();//3
echo "<br>";
myTest();//4
?>  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved