php基礎入門篇學習筆記

来源:http://www.cnblogs.com/shouce/archive/2016/03/15/5277950.html
-Advertisement-
Play Games

本文章詳細的介紹了在php學習中的最基礎的內容包括了基本數據類型、變數類型、操作符等入門都會要接觸到的東西。-php支持的基本數據類型:Integer:整數Float(Double,雙精度值):浮點數,表示所有實數String:字元串Boolean:布爾值,true/falseArray:保存具有相


本文章詳細的介紹了在php學習中的最基礎的內容包括了基本數據類型、變數類型、操作符等入門都會要接觸到的東西。
-
php支持的基本數據類型:
Integer:整數
Float(Double,雙精度值):浮點數,表示所有實數
String:字元串
Boolean:布爾值,true/false
Array:保存具有相同類型的多個數據項
Object:對象,保存類的實例
NULL:沒有被賦值、已經被重置或被賦值為特殊值NULL的變數
特定的內置函數(例如資料庫函數)將返回resource類型的變數

四種標量類型:

string(字元串) 
integer(整型) 
float(浮點型,也作 double ) 
boolean(布爾型) 
兩種複合類型:

array(數組) 
object(對象) 
兩種特殊類型:

resource(資源) 
NULL(空) 
查看變數類型
通過 gettype() 函數可以方便的查看某個變數的類型:

 代碼如下 複製代碼 
<?php
$var_bool = TRUE;     // a boolean
$var_str  = "foo";     // a string
$var_int  = 12;      // an integer

echo gettype($var_bool);    // 輸出 boolean
echo gettype($var_str);     // 輸出 string
echo gettype($var_int);     // 輸出 integer
?>
 

提示
由於歷史原因,如果是 float 類型數據,gettype() 函數返回的是 double,而不是 float 。 
如果想查看某個表達式的值和類型,請使用用 var_dump() 函數。 
判斷變數類型
如果想通過判斷變數類型來確定下一步邏輯動作,不要使用 gettype() ,而使用 is_type 系列函數:

 代碼如下 複製代碼 
<?php
$var_int  = 12;

// 如果 $var_int 是 int 類型,這進行加法
if (is_int($var_int)) {
    $var_int = $var_int+4;
}
echo $var_int;  // 輸出 16
?>
 


NULL和resource都代表外部資源,例如資料庫連接
基本上不能直接操作一個resource變數,但是通常它們都將被函數返回,而且必須作為參數傳遞給其他函數。

在php中,變數的類型是由賦給變數的值確定的。(動態類型語言)
PHP可以在任何時間根據保存在變數中的值來確定變數的類型,也就是具有在任何時間透明地改變變數類型的功能。 
PHP將“自動地”獲得輸入的數據類型,一旦從變數中檢索變數值,它將返回具有相同數據類型的數據。
養成習慣:常量名稱都是由大寫字母組成的。這樣容易區分變數和常量。
常量和變數之間的一個重要不同點在於引用一個常量的時候,它前面並沒有$符號。
常量和變數的另一個差異在於常量只可以保存布爾值、整數、浮點數或字元串數據,這些類型都是標量數據。

變數類型變化(juggling) 
PHP不需要(或者說不支持)在聲名變數明確他的變數類型;一個變數的類型是由這個變數被使用的前後關係來決定的,也就是說,如果你給一個變數var賦了 一個字元串的值,var就變成了字元串變數。如果你再將一個整數賦值給var,他又變成了一個整數型變數。 一個PHP自動轉化變數類型的例子是加法的操作符’+’。如果任何一個操作數都是雙精度數,那麼所有的操作數被當作雙精度數求值,並且結果也是雙精度數。 否則,操作數將被認為是整數,結果也將會是整數。註意這並不影響每個操作數本身的變數類型,唯一的變化就是操作數在計算的過程中被如何處理。 $foo  =  "0";  //  $foo  是一個字元串  ,值是“0”(ASCII  48)

PHP代碼

 代碼如下 複製代碼 
$foo  =  "http://www.hzhuti.com/HTC/G11/";  //  $foo  是一個字元串  ,值是“0”(ASCII  48)      
$foo++;  //  $foo  是一個字元串,值是“1”(ASCII  49)      
$foo  +=  1;  //  $foo  現在是一個整數(2)了      
$foo  =  $foo  +  1.3;  //  $foo  現在是一個雙精度數(3.3)了      
$foo  =  5  +  "10  Little  Piggies";  //  $foo  是一個整數  (15)      
$foo  =  5  +  "10  Small  Pigs";  //  $foo  是一個整數  (15)   


如果你覺得上面例子中最後兩個表達式看起來有點奇怪的話,請看 “字元串的轉化”部分。 如果你希望強制一個變數被當作某種固定的類型來計算,請看 “類型強制(casting)” 一節。如果你希望轉變一個變數的類型,請看函數“settype()”的說明。
 確定一個變數的類型
因為PHP自己決定變數的類型並且一般按照需要轉化他們,一個特定的變數的類型不是在任何時間都非常明顯。PHP包括一些函數可以找出這個變數的類型。這 些函數是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object(). 
類型強制(type casting)
在PHP中類型強制同在C語言中大抵相似:將需要的類型的種類寫在要強制的變數的前面的圓括弧中。
 

PHP代碼

 代碼如下 複製代碼 
$foo  =  10;  //  $foo  是一個整數     
$bar  =  (double)  $foo;  //  $bar  是一個雙精度數    


以下的強制方式是允許的: (int), (integer) – 強製成整數 (real), (double), (float) – 強製成雙精度數 (string) – 強製成字元串 (array) – 強製成數組 (object) – 強製成對象 註意在圓括弧中允許製表符(tabs)和空格(spaces) ,因此下麵的語句是等價的: $foo = (int) $bar; $foo = ( int ) $bar; 
字元串轉化
當一個字元串被當作數字型的值來計算時,他的結果和類型如下麵所述的決定。 如果這個字元串含有字元’.’,’e’,或者’E’,則被當作雙精度類型變數來處理,否則當作是整數。 這個字元串的值由詞首部分決定。如果這個字元串以任何有效的數字的數據開始,那麼這個數字數據就是這個字元串參加運算的值。否則,值為零(zero)。有 效的數字數據是遵循下麵的這些標記的,跟隨在一個或多個數字後面(可以包含小數點),跟隨在一個可選的指數後面。指數是由一個或多個數字跟在’e’或 ’E’後面構成的。
 

PHP代碼

 代碼如下 複製代碼 
$foo  =  1  +  "10.5";  //  $foo  是雙精度數  (11.5)      
$foo  =  1  +  "-1.3e3";  //  $foo  是雙精度數(-1299)      
$foo  =  1  +  "bob-1.3e3";  //  $foo  是整數  (1)      
$foo  =  1  +  "bob3";  //  $foo  是整數  (1)      
$foo  =  1  +  "10  Small  Pigs";  //  $foo  是整數  (11)    
$foo  =  1  +  "10  Little  Piggies";  //  $foo  是整數  (11);      
//  這個字元串包括字元'e'   


標識符


操作符:
1)賦值操作符:=

2)算術操作符:+,-,*,/,%(取模)

3)連接操作符:. ,無論操作數是什麼,都當成String,結果返回String

4)合計賦值操作符(Combined Assignment Operators):+=,*=,/=,-=,%=,.=

5)自動增減操作符(Automatically Incrementing and Decrementing):

(1)$variable+=1 ⇔$variable++;$variable-=1 ⇔$variable-,跟c語言一樣,先做其他操作,後++或-

(2)++$variable,-$variable,先++或-,再做其他操作

6)比較操作符:

= =(左邊等於右邊),!=(左邊不等於右邊),
= = =(左邊等於右邊,且數據類型相同),
>=,>,<,<=

7)邏輯操作符:|| or,&& and,xor(當左右兩邊有且只有一個是true,返回true),!

一個參考表

運算符(Arithmetic Operators) Operator
符號 Description
描述 Example
案例 Result
結果 
+ Addition
加號 x=2
x+2 4 
- Subtraction
減號 x=2
5-x 3 
* Multiplication
乘號 x=4
x*5 20 
/ Division
除號 15/5
5/2 3
2.5 
% Modulus (division remainder)
求模(餘數) 5%2
10%8
10%2 1
2

++ Increment
自加 x=5
x++ x=6 
-- Decrement
自減 x=5
x-- x=4


Assignment Operators
分配符(Assignment Operators)

Operator
符號 Example
案例 Is The Same As
等同於 
= x=y x=y 
+= x+=y x=x+y 
-= x-=y x=x-y 
*= x*=y x=x*y 
/= x/=y x=x/y 
%= x%=y x=x%y


Comparison Operators
比較符(Comparison Operators)

Operator
符號 Description
具體描述 Example
案例 
== is equal to
等於 5==8 返回 false 
!= is not equal
不等於 5!=8 返回  true 
> is greater than
大於 5>8 返回  false 
< is less than
小於 5<8 返回  true 
>= is greater than or equal to
大於等於 5>=8 返回  false 
<= is less than or equal to
小於等於 5<=8 返回  true


Logical Operators
邏輯判斷符(Logical Operators)

Operator
符號 Description
描述 Example
案例 
&& and
與 x=6
y=3 
(x < 10 && y > 1) 返回 true
 
|| or
或 x=6
y=3 
(x==5 || y==5) 返回 false
 
! not
非 x=6
y=3 
!(x==y)返回true
 


其他操作符:

三元操作符、錯誤抑制操作符、執行操作符、數組操作符、類型操作符

運算符"?"前的表達式

如果一個包含二元運算符的表達式出現在三元運算符" ? : "的"?"之前,那麼應該給表達式添上一對圓括弧。例如:
(x >= 0) ? x : -x;

下麵我們來看一個簡單的?號表達式實例

 代碼如下 複製代碼 
<?

$a='http://www.zhutiai.com/zhuti/c7/';

echo $a?'true':'false';

輸出結果為 trur;

再看

if( $a )

{

   echo 'true';

}

else

{

   echo 'false';

}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 由於現在面試需求,我必須有點瞭解MVC開發基礎,MVC是一個開發框架或者是一個開發模式,MVC讓軟體開發的過程大致切割成三個單元,分別是:Model(模型)、View(試圖)、Controller(控制器) MVC的好處是:MVC有很好的關註點分離,更好的維護軟體,使得網站更容易維護,以加速項目開發
  • Quartz.Net是一個開源的作業調度框架; 官網地址:http://www.quartz-scheduler.net/documentation/index.html 源碼地址:https://sourceforge.net/projects/quartznet/ 定時輪詢資料庫同步,定時郵件通
  • 一、前言 之前也閱讀過MVC的源碼,並瞭解過各個模塊的運行原理和執行過程,但都沒有形成文章(所以也忘得特別快),總感覺分析源碼是大神的工作,而且很多人覺得平時根本不需要知道這些,會用就行了。其實閱讀源碼是個很好的習慣,它不只停留在知道怎麼用的階段,而是讓我們知道一系列的為什麼,為什麼這樣設計,為什麼
  • 一、開發環境 系統:Win10 編譯器:VS2013 .Net版本:4.5 Quartz版本:2.3.3 二、涉及程式集 Common.Logging.Core.dll Common.Logging.dll Quartz.dll 三、項目結構 四、開發過程 1.新建一個控制台項目,並從nuget中獲...
  • 在使用百度編輯器ueditor的時候,怎麼將圖片保存到另一個伺服器,或者上傳到ftp伺服器?這個問題,估計很多使用UE的人會遇到。而且我百度過,沒有找到這個問題的解決方案。那麼:本篇文章就很適合你了。因為本文解決了這個問題。
  • 今天受同事的委托,修複一臺伺服器的Apache漏洞,主要集中在以下幾點: 1.Apache httpd remote denial of service(中危) 修複建議:將Apache HTTP Sever升級到2.2.20或更高版本。 解決方法:升級HTTP。 現Apache官網提供的都是源碼包
  •   我們先假設業務場景,是需要有這麼一個擴展,提供一個叫ccvita_string的函數,他的主要作用是返回一段字元。(這個業務場景實在太假,大家就這麼看看吧)對應的PHP代碼可能是這樣: 第一步,生成代碼PHP為了擴展開發的方便,提供了一個類似代碼生成器的工具ext_skel,具體可以參見說明。首
  •  
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...