php array()函式

array()函式是接收一串以逗號為區隔的資料,放入陣列中。

$aLanguages = array("Arabic", 3 => "German", "Korean", "Tagalog");
echo $aLanguages[0] ;   // "Arabic"
echo $aLanguages[3] ;   // "German"
echo $aLanguages[4] ;   // "Korean"
echo $aLanguages[5] ;   // "Tagalog"

若我們沒有指定任何索引值,這些陣列的元素會被指派預設的索引值。要明確指定array()構件中的索引值的話,要用 =>運算子。

php +0

php 數字加上一個0會變成?

今天學習一組程式碼,一直納悶著為何sairwolf要加一個數字0,有甚麼用處呢?
原來,加數字零之後,取出的兩位數會變成一位數,當若是要取出兩位數,而需要是個位數時。
如:取出數是09,但是我要9時,加個數字0就會變成9。但是你會說:那不就取1位就好,但是常常是也需要2位數的。
<?php
$or_num="20045";
$count_num=substr($or_num,2,2);
echo $count_num."<br>";
$count_num +=0;
echo $count_num."<br>";

?>

結果

04
4

PHP isset() empty() is_null() 的區別

它們的區別   出處

三個方法都是來判斷是否是空值或有沒有宣告變數的方法,比較容易混淆的是isset(),empty()。

  • isset()檢查變數是否存在
  • empty()檢查變數的值是否為空
  • is_null()檢查變數是否為null
gettype()isset()empty()is_null()
$x is undefinedNULLFALSETRUETRUE
$x = null;NULLFALSETRUETRUE
$x = 0;integerTRUETRUEFALSE
$x = “0”;stringTRUETRUEFALSE
$x = 1;intergerTRUEFALSEFALSE
$x = “”;stringTRUETRUEFALSE
$x = “PHP”;stringTRUEFALSEFALSE

intval

intval  函數

(PHP 4, PHP 5, PHP 7, PHP 8)

intval — 獲取變數的整数值

說明

intval(mixed $value, int $base = 10): int

通过使用指定的进制 base 转换(默认是十进制),返回变量 value 的 int 数值。 intval() 不能用于 object,否则会产生 E_WARNING 錯誤並返回 1。

範例

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 10000000000
echo intval('1e10');                  // 10000000000
echo intval(0x1A);                    // 26
echo intval('0x1A');                  // 0
echo intval('0x1A', 0);               // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
echo intval(false);                   // 0
echo intval(true);                    // 1
?>

ord

ord   函數

(PHP 4, PHP 5, PHP 7, PHP 8)

ord — 轉換字符串第一个字节为 0-255 之间的值

说明

ord(string $character): int

解析 character 二进制值第一个字节为 0 到 255 范围的无符号整型类型。

如果字符串是 ASCII、 ISO-8859、Windows 1252之类单字节编码,就等于返回该字符在字符集编码表中的位置。 但请注意,本函数不会去检测字符串的编码,尤其是不会识别类似 UTF-8 或 UTF-16 这种多字节字符的 Unicode 代码点(code point)。

该函数是 chr() 的互补函数。

範例:

<?php
declare(encoding='UTF-8');
$str = "?";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
 $byte = substr($str, $pos);
 echo 'Byte ' . $pos . ' of $str has value ' . ord($byte) . PHP_EOL;
}
?>

輸出:

Byte 0 of $str has value 240
Byte 1 of $str has value 159
Byte 2 of $str has value 144
Byte 3 of $str has value 152

PHP_正規表達式

正規表達式
開頭結尾:
^:比對字串的開始位置
$:比對字串的結束位置

指定匹配次數

*:比對前一個字元0次或以上
+:比對前一個字元1次或以上
?:比對前一個字元0次或1次以上
{數字}:比對前一個字母N次(n是整數數字),ex:/{3}/,意思比對字串aaapple,中的aaa3次,可是無法比對aa,因為已經指定3次,所以只能3次。
{,數字}:比對N次以下(N是整數)
{數字,}:比對前一個字母"至少"N次(N是整數數字),ex:/{3,}/,意思可比對aaa aaaapple,中的aaaa aaa3次,只能比對該字母3次或以上。
{數字1,數字2}:比對前字母N~M次(N跟M是整數),ex:/{3,4}/,意思可比對aaa aa aaaa apple,中的aaa aaaa符合,aa apple都不符合,只能比對a 3到4次,其他多的或少的,都無法比對。

特殊符號:

\:反斜線,避開特殊字元
.:比對任何次元

特定字元:

[字母或數字]:比對括號中出現的"任何"字元,只要一個不符合就false。
    ex:[A-Z]比對大寫英文字母A-Z,反之小寫[a-z]則是比對小寫字母,[0-9]比對數字。
[^字母或數字]:比對括號內以外的字元,也就是不要比括號裡出現的字母或數字。
    ex:/[^le],表示字串中apple中,不要比對le,指比對a,p,p
/字母/:比對字串內是否含有該字母。
    ex:/m/,就是比對該字串是否含有m字母。
/字母A字母B/:比對A或B。ex:/ab/,比對字串內是否有a或b。

其他:

\b:比對英文邊界,如空格
\d:比對任一數字,如[0-9]
\D:比對任何非數字,如[^0-9]
\w:比對數字字母跟底線,如[A-Za-z0-9_]
\W:比對非數字字母跟底線,[^A-Za-Z0-9_]
\s:比對任一空白字元
\S:比對任一非空白次元
\n:比對換行符號,是否換行
\t:比對定位字元

範例:

[^A-Za-z0-9]          代表接受英文大小寫及數字以外的字串

[0-9A-Za-z]           代表英文大小寫及數字的字串

[^0-9]          代表數字以外的字串

[0-9]          代表數字的字串

[A-Za-z]            代表英文大小寫的字串

[A-Za-z0-9_]           代表大小寫英數及符號的字串

[^A-Z]           代表大寫英文字母以外的字串

[A-Z]          代表大寫英文字母的字串

{3,7}           代表三個至七個字元的字串

{5,}          代表五個以上的字串

^[A-C]{3}            開頭是大寫的英文字母且在A-C間,且有三個字元的字串    20241015

PHP foreach

第一種為 key 從 0 開始依序遞增的陣列,這時只需取得 value 即可

 foreach (array_name as $value)

foreach ($a as $i){  
     $sum +=$i;
}
echo "1+2+3+.....+99+100=".$sum."<br/>";
  • 第二種則是任意的 key-value 組合,此時需要兩個變數 $key 為 key 的值, $value 為 value 的值

 foreach (array_name as $key => $value)

$b = array(
       "one" => 1,
       "two" => 2,
       "three" => 3,
       "four" => 4
         );

foreach ($b as $key => $value){
    echo "{$key}: => {$value} <br/>"; 
}