日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇

發布時間:2023/11/30 php 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近計劃把 PHP手冊,認真的先過一遍。記錄一些以前不知道,不明確的知識。

語言參考 > 類型

【新認知】強制轉換類型用 settype( mixed $var, string $type )。判斷變量的類型用is_type函數。例如:

if (is_int($an_int)) {

$an_int += 4;

}

if (is_string($a_bool)) {

echo "String: $a_bool";

}

判斷變量

is_array( mixed $var )

is_bool( mixed $var )

is_float( mixed $var )

is_integer( mixed $var )

is_null( mixed $var )

is_numeric( mixed $var ) //檢測變量是否為數字或數字字符串

is_object( mixed $var )

is_resource( mixed $var )

is_scalar( mixed $var ) //檢測變量是否是一個標量 integer、float、string 或 boolean

is_string( mixed $var )

判斷函數和方法

function_exists( string $function_name )

method_exists( mixed $object, string $method_name ) // 判斷類的方法

Boolean 布爾類型

【遇到坑】(string) '0.00' 被認為是 True,且不為空

$str = '0.00';

$ret = !empty($str) ? $str : '5.00';

echo $ret;

//output:0.00

【遇到坑】當字符串 與 數字比較時,會被轉換為數字之后進行比較

//將all轉換為數字時候為0

var_dump(0 == 'all'); // TRUE, take care

Integer 整型

【新認知】整型的最大值可以用常量 PHP_INT_MAX 表示

【新認知】PHP 沒有像 C++ / JAVA 的整除運算,類似 1 / 2,PHP 返回 float 0.5

【舊回顧】轉換為整型可以用(int) 或者 (integer) 強制轉換。或者通過函數 intval() 來轉換。

Float 浮點型

【新認知】比較浮點數的方法

$a = 1.23456789

$b = 1.23456780

$epsilon = 0.00001

if (abs($a - $b) < $epsilon) {

echo 'true';

}

String 字符串

【新認知】使用函數 ord() 和 chr() 實現 ASCII 碼和字符間的轉換(PS:這點和 Python 是一樣的)

【新認知】 PHP 中沒有單獨的“byte”類型,已經用字符串來代替了。

Array 數組

【新認知】 unset()函數允許刪除數組中的某個鍵,但是數組的鍵不會重新索引。可以使用 array_values() 函數重新索引。

【遇到坑】避免數組 $foo[bar] 的寫法,使用 $foo['bar']

【新認知】如果一個object類型轉換為 array,則結果為一個數組,其單元為該對象的屬性。鍵名將為成員變量名,不過有幾點例外:整數屬性不可訪問;私有變量前會加上類名作前綴;保護變量前會加上一個'*'做前綴。這些前綴的前后都各有一個 NULL 字符。

class A {

private $A; // This will become '\0A\0A'

}

class B extends A {

private $A; // This will become '\0B\0A'

public $AA; // This will become 'AA'

}

var_dump((array) new B());

?>

【新認知】 在循環中改變單元,可以用個引用傳遞來做到

// PHP 5

foreach ($colors as &$color) {

$color = strtoupper($color);

}

unset($color); /* ensure that following writes to

類型轉換

【新認知】轉換為NULL類型,(unset) $val

【新認知】將字符串文字和變量轉換為二進制字符串 (PS:和想象中不一樣)

$binary = (binary)$string;

$binary = b"binary string";

語言參考 > 變量

變量范圍

【舊回顧】 使用global,$GLOBALS 來實現全局變量或者超全局變量

【新認知】 靜態變量只能簡單賦值,不能是表達式。靜態變量第一次賦值之后不會再被重新定義,可以用于遞歸函數的計數。

function test()

{

static $count = 0;

$count++;

echo $count;

if ($count < 10) {

test();

}

$count--;

}

?>

來自PHP外的變量

【新認知】變量名中的點和空格被轉換成下劃線 例如 變成 $_REQUEST["a_b"]

語言參考 > 流程控制

foreach

【新認知】用list()為嵌套數組解包

$array = [

[1, 2],

[3, 4],

];

foreach ($array as list($a, $b)) {

// $a contains the first element of the nested array,

// and $b contains the second element.

echo "A: $a; B: $b\n";

}

?>

break

【新認知】break 可以接受一個可選的數字參數來決定跳出幾重循環。break 相當于 break 1

continue

【新認知】continue 可以接受一個可選的數字參數來決定跳到幾重循環結尾。continue 相當于 continue 1

語言參考 > 常量

魔術常量

【新認知】原來這些變量叫做 魔法常量

__LINE __

__FILE__

__DIR__

__FUNCTION__

__CLASS__

__TARIT__

__MRTHOD__

__NAMESPACE__

語言參考 > 類與對象

基本概念

【新認知】::class, 使用ClassName::class 可以獲得一個字符串,包含命名空間

namespace NS {

class ClassName {

}

echo ClassName::class;

}

?>

//output: NS\ClassName

類常量

【新認知】接口中可以定義常量

【新認知】可以用一個變量來動態調用類,但該變量的值不能為關鍵詞(self, parent, static)。

魔術方法

【新認知】不能在__toString() 方法中拋出異常,這樣會出現致命錯誤。

類型約束

【新認知】PHP5 可以使用類型約束,函數的參數可以制定必須為 對象,接口,數組,callable

后期靜態綁定

【新認知】后期靜態綁定,static:: 不再被解析為定義在當前方法所在的類,而是在實際運行時計算。

class A {

public static function who() {

echo __CLASS__;

}

public static function test() {

static::who(); // 后期靜態綁定從這里開始

}

}

class B extends A {

public static function who() {

echo __CLASS__;

}

}

B::test();

?>

//output: B

語言參考 > 生成器

【新認知】生成器汗水的核心是yield關鍵字。它最簡單的調用形式看起來像一個return聲明,不同之處在于普通return會返回值并終止函數的執行,而yield會返回一個值給循環調用此生成器的代碼而且只是暫時執行生成器代碼

function gen_one_to_three() {

for ($i = 1; $i <= 3; $i++) {

//注意變量$i的值在不同的yield之間是保持傳遞的。

yield $i;

}

}

$generator = gen_one_to_three();

foreach ($generator as $value) {

echo "$value\n";

}

?>

1

2

3

語言參考 > 預定義變量

超全局變量

$GLOBALS

$_SERVER

$_GET

$_POST

$_FILES

$_REQUEST

$_SESSION

$_ENV

$_COOKIE

$php_errormsg //前一個錯誤信息

$HTTP_RAW_POST_DATA //原始POST數據

$http_response_header //HTTP Response Header

$argc //argument numbers

$argv //argument array

以上

總結

以上是生活随笔為你收集整理的现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。