亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    php標量數(shù)據(jù)和數(shù)組的最大區(qū)別是什么

    最大區(qū)別是:一個標量只能存放一個數(shù)據(jù),而數(shù)組可以存放多個數(shù)據(jù);且標量類型是值傳遞,而數(shù)組是引用傳遞。在PHP中,標量數(shù)據(jù)有四種類型:布爾型、字符串、整型、浮點型,它們一次只能存一個值;而數(shù)組是一組數(shù)據(jù)的集合,可存儲任意多個、任意類型的數(shù)據(jù)。

    php標量數(shù)據(jù)和數(shù)組的最大區(qū)別是什么

    本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

    php標量數(shù)據(jù)和數(shù)組的區(qū)別

    • 最大區(qū)別:一個標量只能存放一個數(shù)據(jù),而數(shù)組可以存放多個數(shù)據(jù)。

    • 其他區(qū)別:標量類型是值傳遞,而數(shù)組是引用傳遞。

    什么是標量數(shù)據(jù)

    標量數(shù)據(jù)類型是數(shù)據(jù)結(jié)構(gòu)最基礎的單元,只能存儲一個數(shù)據(jù)。在 PHP 中的標量數(shù)據(jù)類型分為四種:

    類型 功能
    boolean(布爾型) 最簡單的數(shù)據(jù)類型,只有兩個值:true(真) / false(假)
    string(字符串) 字符串是連續(xù)的字符序列
    integer(整型) 整型數(shù)據(jù)類型包含所有的整數(shù),其可以是整數(shù)也可以是負數(shù)
    float(浮點型) 浮點型數(shù)據(jù)類型也是用來存儲數(shù)字,與整型不同它包含小數(shù)

    1)布爾型(boolean)

    布爾型是 PHP 中較為常用的數(shù)據(jù)類型之一,它保存一個真值(true) 或 假值(false)

    // 代碼: $a = true; // 真值 $b = false; // 假值

    2)字符串(string)

    字符串是連續(xù)的字符序列,由數(shù)字、字母、符號組成,字符串的每個字符只占一個字節(jié)。字符包含以下幾種類型

    字符類型名 內(nèi)容
    數(shù)字類型 如:1、2、3等
    字母類型 如:a、b、c等
    特殊類型 如:#、$、^、&等
    不可見類型 如:n(換行符)、r(回車)、t(tab字符)等

    不可見字符是比較特殊的字符用于控制字符串格式輸出,在瀏覽器上不可見,只是能看到字符串的輸出結(jié)果。

    在 PHP 中有 3 種定義字符串的方式:

    a.單引號(')

    $a = 'zZ愛吃菜';

    b.雙引號(")

    $b = "zZ愛吃菜";

    單引號與雙引號的區(qū)別:雙引號所包含的變量會自動被替換成實際值,而單引號包含的變量則按普通類型輸出。例如:

    $a = 'hello'; $b = '$a china'; $c = "$a world"; // 個人建議這樣寫:$c = "{$a} world"; 不容易產(chǎn)生歧義 echo $b; echo $c; 結(jié)果: $a china hello world

    c.定界符(<<<)

    如果用傳統(tǒng)的輸出方法——按字符串輸出的話,肯定要有大量的轉(zhuǎn)義符來對字符串中的引號等特殊字符進行轉(zhuǎn)義,以免出現(xiàn)語法錯誤。如果是一兩處還可以容忍,但是要是一個完整的html文本或者是一個200行的js我想是誰都會崩潰的。這就是PHP為什么要引入一個定界符的原因——至少一大部分原因是這樣的。
    1.PHP 定界符的作用就是按照原樣,包括換行格式什么的,輸出在其內(nèi)部的東西;
    2.PHP 定界符中字符串內(nèi)容不需要轉(zhuǎn)義

    // 定義 <<<Eof  ……  Eof;

    不需要對付出轉(zhuǎn)義的好處:直接輸出你想要的 html 字符串

    $name = 'kitty'; echo <<<Eof <table height="20"> <tr><td> {$name}<br/> <script> var p='hello world'; document.writeln(p); </script> </td></tr> </table> <select> <option>aaaaa</option> <option>aaaaa</option> <option>aaaaa</option> </select> Eof;

    注意:使用定界符輸出字符串,結(jié)束標識符必須單獨另起一行,并且不允許有空格。

    3)整型(integer)

    整型數(shù)據(jù)類型只能包含整數(shù),在 32 位的操作系統(tǒng)中,有效范圍是: -2147483648(2的31次方) ~ 217483647 (2的31次方-1)。整型可以使用十進制、八進制和十六進制表示,如:八進制(數(shù)字前面必須加0)、十六進制(數(shù)字前面必須加0x)

    $int1 = 1234; $int2 = 01234; $int3 = 0x1234;  echo "十進制的結(jié)果是:{$int1}<br>"; echo "八進制的結(jié)果是:{$int2}<br>"; echo "十六進制的結(jié)果是:{$int3}<br>"; 結(jié)果 十進制的結(jié)果是:1234 八進制的結(jié)果是:668 十六進制的結(jié)果是:4660

    注意:如果給定的數(shù)值超出了 int 型所能表示的最大范圍,將會被當作 float 型處理,這種情況叫做:整型溢出。表達式最后的運算結(jié)果超出 int 范圍,也會返回 float 型

    4)浮點型(float)

    浮點型數(shù)據(jù)類型可以用來存儲整數(shù),也可以保存小數(shù)。它提供的精度比整數(shù)大得多。 在32系統(tǒng)中有效范圍: 1.7E-308 ~ 1.7E+308

    在 PHP 4.0 之前的版本 浮點型被標識為 double,也叫雙精度浮點數(shù),兩者沒什么區(qū)別

    // 定義 $a = 1.036; $b = 2.035; $c = 3.48E2; // En代表10*n, E1 代表 * 10, $c = 348  echo $c; 結(jié)果:348

    什么是數(shù)組

    數(shù)組就是一組數(shù)據(jù)的集合,把一系列數(shù)據(jù)組織起來,形成一個可操作的整體。

    因為 PHP 是弱數(shù)據(jù)類型的編程語言,所以 PHP 中的數(shù)組變量可以存儲任意多個、任意類型的數(shù)據(jù),并且可以實現(xiàn)其他強數(shù)據(jù)類型中的堆、棧、隊列等數(shù)據(jù)結(jié)構(gòu)的功能。

    數(shù)組 array 是一組有序的變量,其中每個值被稱為一個元素。每個元素由一個特殊的標識符來區(qū)分,這個標識符稱為鍵(也稱為下標)。

    數(shù)組中的每個實體都包含兩項,分別是鍵(key)和值(value)??梢酝ㄟ^鍵值來獲取相應的數(shù)組元素,這些鍵可以是數(shù)值鍵,也可以是關聯(lián)鍵。如果說變量是存儲單個值的容器,那么數(shù)組就是存儲多個值的容器。

    PHP 數(shù)組比其他高級語言中的數(shù)組更加靈活,不但支持以數(shù)字為鍵名的索引數(shù)組,而且支持以字符串或字符串、數(shù)字混合為鍵名的關聯(lián)數(shù)組。而在其他高級語言中,如 Java 或者 C++ 等語言的數(shù)組,只支持數(shù)字索引數(shù)組。

    PHP 數(shù)組的結(jié)構(gòu)如下圖所示:

    php標量數(shù)據(jù)和數(shù)組的最大區(qū)別是什么

    擴展知識:

    在 PHP 中,標量類型數(shù)據(jù)是值傳遞的,而復合類型數(shù)據(jù)(對象和數(shù)組)是引用傳遞的。

    但是復合類型數(shù)據(jù)的引用傳遞和用 & 符號明確指定的引用傳遞是有區(qū)別的,前者的引用傳遞是對象引用,而后者是指針引用。

    在解釋對象引用和指針引用之前,先讓咱們 看多個 例子。

    <?php echo "<pre>"; class SampleClass { var $value; } $a = new SampleClass(); $a->value = $a;  $b = new SampleClass(); $b->value = &$b;  echo serialize($a); echo "n"; echo serialize($b); echo "n"; echo "</pre>"; ?>

    這個例子的輸出結(jié)果是這樣的:

    O:11:"SampleClass":1:{s:5:"value";r:1;} O:11:"SampleClass":1:{s:5:"value";R:1;}

    大家 會發(fā)覺 ,這里變量 $a 的 value 字段的值被序列化成了 r:1,而 $b 的 value 字段的值被序列化成了 R:1。

    但是對象引用和指針引用到底有什么區(qū)別呢?

    看下面這個例子:

    echo "<pre>"; class SampleClass { var $value; } $a = new SampleClass(); $a->value = $a; $b = new SampleClass(); $b->value = &$b; $a->value = 1; $b->value = 1; var_dump($a); var_dump($b); echo "</pre>";

    運行結(jié)果也許出乎你的預料:

    object(SampleClass)#1 (1) {    ["value"]=>    int(1) } int(1)

    改動 $a->value 的值僅僅是改動 了 $a->value 的值,而改動 $b->value 的值卻改動 了 $b 本身,這就是對象引用和指針引用的區(qū)別。

    推薦學習:《PHP視頻教程》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號