亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PHP 6:PHP 基本數據類型

系統 2867 0
原文: PHP 6:PHP 基本數據類型

本章將介紹PHP基本類型。
相信我們已經熟悉了C/C++,C#或者Java里的任意一種語言。本章會以C#為比較語言。
OK,如果你想學PHP,你最先考慮的是什么呢?
我相信肯定是下面的幾個問題:

  • PHP有哪幾種數據類型,它們和其他語言有什么區別呢?
  • 一種語言對于數據類型,有強類型和弱類型之分,PHP屬于哪一種呢?
  • PHP有什么獨特的地方呢?
基于上面想法,我將會一一闡述。
還是先把上一篇文章所引用的代碼拿出來吧。

?1 ? function ?display_user_urls( $url_array )
?2 ? {
?3 ? ?? // ?display?the?table?of?URLs
?4 ?
?5 ? ??//?set?global?variable,?so?we?can?test?later?if?this?is?on?the?page
?6 ? ?? global ? $bm_table ;
?7 ? ?? $bm_table ? = ? true ;
?8 ? ?>
?9 ? ?? < br? />
10 ? ?? < form?name = ' bm_table ' ?action = ' delete_bms.php ' ?method = ' post ' >
11 ? ?? < table?width = 300 ?cellpadding = 2 ?cellspacing = 0 >
12 ? ?? <? php
13 ? ?? $color ? = ? " #cccccc " ;
14 ? ?? echo ? " <tr?bgcolor='$color'><td><strong>Bookmark</strong></td> " ;
15 ? ?? echo ? " <td><strong>Delete?</strong></td></tr> " ;
16 ? ?? if ?( is_array ( $url_array )? && ? count ( $url_array ) > 0 )
17 ? ??{
18 ? ???? foreach ?( $url_array ? as ? $url )
19 ? ????{
20 ? ?????? if ?( $color ? == ? " #cccccc " )
21 ? ???????? $color ? = ? " #ffffff " ;
22 ? ?????? else
23 ? ???????? $color ? = ? " #cccccc " ;
24 ? ?????? // ?remember?to?call?htmlspecialchars()?when?we?are?displaying?user?data
25 ? ?????? echo ? " <tr?bgcolor='$color'><td><a?href=\ " $url \ " > " . htmlspecialchars ( $url ) . " </a></td> " ;
26 ? ?????? echo ? " <td><input?type='checkbox'?name=\ " del_me[]\ "
27 ? ?????????????value=\ " $url \ " ></td> " ;
28 ? ?????? echo ? " </tr> " ;?
29 ? ????}
30 ? ??}
31 ? ?? else
32 ? ???? echo ? " <tr><td>No?bookmarks?on?record</td></tr> " ;
33 ? ?>
34 ? ?? </ table > ?
35 ? ?? </ form >
36 ? <? php
37 ? }
逐一討論吧。
  1. PHP有哪幾種數據類型,它們和其他語言有什么區別呢?
????? PHP支持8種原始的數據類型。
其中包括4種標量類型:
  • Integer
  • Float
  • String
  • Boolean
同時包括2種復合類型:
  • Array
  • Object
但是還有2種特殊的類型:
  • NULL
  • Resource
寫到此,你可能心里開始犯嘀咕:那么它們是在程序里面怎么表示呢?好的,讓我們先看看前面6種數據類型吧。還有2種類型后面解釋。
  • Integer: int
  • Float: float
  • String: string
  • Boolean: bool
其實上面的和C# 沒有多大區別,這里不多說了。
Array 數據類型還是比較特殊的,因為在C#語言里就沒有這種數據類型,其他語言,C/C++,Java也是沒有的。你可以把他當成C#里的數組看待就可以了。另外,看看PHP官方網站上是怎么說的。
?? PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,因此可以把它當成真正的數組來使用,或列表(矢量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 數組作為值,也可以很容易地模擬樹。
看看Array的用法吧。我們可以新建一個Array對象,由于Array是key和value映射的。所以Array支持一定數量以分號分隔的值對。給個例子,代碼如下:
<? php
$arr ? = ? array ( " Hello " ? => ? " Word " , ? 12 ? => ? true );

echo ? $arr [ " Hello " ];? // ?bar
echo ? $arr [ 12 ];???? // ?1
?> ?
請記住一點 key 可以是整型或者字符串。如果鍵名是一個整型的標準表達方法,取整,如果是float型,轉化為整型。與之對比,值則可以為任何值。
如果你想實現多維數組怎么辦?在PHP沒有提供類系與C#的多維數組的寫法,為什么呢?我的觀點是這里的數組早已經不是C# 等語言里的單純的數組了。它已經擴展了數組,可以哈希表,字典等等。所以提供多維數組確實沒有必要。雖說如此,但是可以實現類似的功能,如下代碼:
<? php
$arr ? = ? array ( " somearray " ? => ? array ( 6 ? => ? 5 , ? 13 ? => ? 9 , ? " a " ? => ? 42 ));

echo ? $arr [ " somearray " ][ 6 ];???? // ?5
echo ? $arr [ " somearray " ][ 13 ];?? // ?9
echo ? $arr [ " somearray " ][ " a " ];?? // ?42
?> ?
既然討論到這里,你可能想想知道如何新建或刪除一個數組對象。什么都不說了,看看下面代碼:
?1 ? ? php
?2 ? $arr ? = ? array ( 5 ? => ? 1 , ? 12 ? => ? 2 );
?3 ? $arr []? = ? 56 ;???? // ?相當于?$arr[13]?=?56;
?4 ? ????????????????//因為第二個元素的鍵是12???????
?5 ? $arr [ " x " ]? = ? 42 ;? // ?創建一個新元素,且鍵為字符串
?6 ? ????????????????//"x",值位42.
?7 ? unset ( $arr [ 5 ]);? // 刪除鍵位5的元素。
?8 ? unset ( $arr );???? // ?刪除整個數組
?9 ? ????????????????//unset()是一函數,從字面的意思上??????????????????????
?????????????????? //看也知道是撤銷設置

10 ? ?>
怎么樣,基本上了解了Array了吧。
至于 Object 嘛,感覺和C#里的沒什么區別。

NULL
對象就有意思了,這個在C# 里是沒有的,C#倒是有個null。

特殊的 NULL 值表示一個變量沒有值, NULL 類型唯一可能的值就是 NULL 注意了 NULL 類型是 PHP 4 引進的。

在下列情況下一個變量被認為是 NULL

  • 被賦值為 NULL

  • 尚未被賦值。

  • 被unset()。

簡單吧,原來把C#里的null作為對象了。聰明的家伙們。
既然如此,我們如何判斷某個變量為 NULL ,相當的簡單,調用is_null(),如何將某個變量設為 NULL ,一種方法是調用unset().

看看 Resource 吧,稱為資源。它保存了到外部資源的一個引用。資源是通過專門的函數來建立和使用的。 由于資源類型變量保存為打開文件、數據庫連接、圖形畫布區域等的特殊句柄,因此無法將其它類型的值轉換為資源。 由于 PHP4 Zend 引擎引進了資源計數系統,可以自動檢測到一個資源不再被引用了(和 Java 一樣)。這種情況下此資源使用的所有外部資源都會被垃圾回收系統釋放。由于此原因,很少需要用某些 free-result 函數來手工釋放內存。垃圾回收?
除了這些還有其他的嗎?當然是肯定的。還有一些偽類型:
???????? mixed

?????????? mixed
說明一個參數可以接受多種不同的(但并不必須是所有的)類型。

?????????? 例如 gettype 可以接受所有的 PHP 類型, str_replace 可以接受字符串和數組。

?????? ? number
??????????? number 說明一個參數可以是 int或float.

??????? callback
????????? 有些諸如 call_user_function() usort() 的函數接受用戶自定義的函數作為一個參數。Callback 函數不僅可以是一個簡單的函數,它還可以是一個對象的方法,包括靜態類的方法。

2 .一種語言對于數據類型,有強類型和弱類型之分,PHP屬于哪一種呢?

???????????? PHP是弱類型的。在PHP里,變量的類型是賦給它們的值決定的。如果賦的值是整型,那么變量就是整型,如果是字符串,就是字符串型。看如下代碼:
<? php
?
$name = " your?name " ; // name位string類型。
? $total = 12 ;???????? // total為整型
?>
??????????? 那么如何轉型呢,我覺得和C# 差不多的。就不贅述了。
???????

PHP 6:PHP 基本數據類型


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天综合在线观看 | 热热涩热热狠狠色香蕉综合 | 亚洲这里只有精品 | 超97在线观看精品国产 | 四虎激情| jizz美女18| 久久免 | 国产99精品视频 | 9久re热视频这里只有精品 | 9久久这里只有精品国产 | 日本一级~片免费永久 | 成人亚洲视频在线观看 | 久久精品免费一区二区视 | 中文字幕一区2区3区 | 国产福利在线观看永久视频 | 国产精品久久久久久久久免费观看 | 成人国内精品久久久久影院 | 亚洲成人网在线 | 高清在线亚洲精品国产二区 | 欧美色视频在线观看 | 久久99精品久久久久久首页 | 欧美精品在线一区 | 亚洲一区欧洲一区 | 精品国产亚一区二区三区 | 99视频全部免费 | 热九九精品 | 久久99精品久久 | 四虎免费入口 | 大片国产片日本观看免费视频 | 夜夜骑加勒比 | 亚洲精品在线看 | 夜精品a一区二区三区 | 深夜福利影院 | 看欧美毛片一级毛片 | 四虎精品在线 | 综合中文字幕 | 日本免费一级 | 91精品国产自产91精品 | 国产欧美另类第一页 | 香蕉网站在线观看 | 亚洲视频手机在线观看 |