原創 初學PHP總結的基礎知識點注意事項

2021-10-01 21:45:03 字數 3081 閱讀 1446

前言:跟著菜鳥教程學習php,裡面有八個模組,初學完第乙個模組,特意總結了一些易錯的知識點:從php語法至php物件導向. (實心點):將多個字串連線成乙個字串,例:

<?php$a=

"hello ";$b

="world!"

;echo$a.

$b;?>

hello world!
上述例子有三個字串,分別為:$a、 $b、 $a. $b

,(逗號):將多個字串拼接起來,例:

<?php$a=

"hello ";$b

="world!"

;echo$a,

$b;?>

hello world!
上述例子有兩個字串,分別為:$a、 $b

print只能輸出乙個字串,而echo可以輸出乙個或多個字串。所以當用","(逗號)連線字串輸出時,只能用echo!php中有"= ="(鬆散比較) 和 「= = =」(嚴格比較),那麼switch-case中的值的對比是哪種比較呢?答案就是:"= ="(鬆散比較),例:

<?php

switch

("1"

)?>

a
" "(雙引號)內可以使用轉義字元,』 '(單引號)按原樣輸出,但:\ \是單引號字串字面量中的乙個特殊情況,它給出了乙個單引號字串字面值量中沒有插入\,\n,例:
<?php

$str

='a\\b\n'

;echo

$str

;?>

a\b\n

非限定名稱:(只限定了自己的名稱)

例:exception( ),呼叫時先嘗試呼叫namespace\exception( ),再嘗試呼叫全域性的exception( )

限定名稱:(限定了部分路徑)

例:another\exception( ),呼叫namespace\another\exception( )

完全限定名稱:(限定了絕對路徑,namespace為全域性;並且完全限定名稱是確定的,故不受匯入的影響)

例:\exception( ),呼叫全域性函式exception( )

呼叫類中的靜態方法或屬性,例:

<?php

class

test

}echo test::$a

.php_eol

;test::b

();?>

a

b

呼叫自身類或父類的屬性或方法(與類物件使用"->"呼叫屬性或方法相同),例:

<?php

class

test

}class

tests

extends

test

}tests::b

();tests::bs

();$b

=new

tests;$b

->b(

);$b-

>bs(

);?>

test's b()

tests's bs()

test's b()

tests's bs

()

補充:

1.與"->"的主要的區別:

雙冒號是用於不建立物件的情況下(用類名)呼叫函式,類名::函式名;

->則是需要基於物件存在的情況下才可使用,類名->函式名為錯誤用法。

2.1.物件呼叫函式:

法一:物件::函式名;

法二:物件->函式名;

2.2.類名呼叫函式:

類名::函式名;

我們可以用new字元建立的物件來呼叫函式;也可以用類名呼叫;還可以把類名賦給某個字串,讓該字串物件按著類名呼叫的方式呼叫函式等。但是在命名空間存在的情況下,這幾種方式的使用有些地方需要注意一下,例子:

<?php

namespace

mytest

;class

myclass

}echo myclass:

:constant

.'1'

.php_eol

;$classname

='myclass'

;echo

$classname::

constant

.'2'

.php_eol

;//自5.3.0起

$class

=new

myclass()

;$class

->

showconstant()

;echo

$class::

constant

.'4'

.php_eol

;//自php5.3.0起

?>

常量值1

php fatal error: uncaught error:

class

'myclass' not found in /box/main.php:

15 stack trace:

#0 throw in /box/main.php on line 15

把" $classname = 『myclass』 「改為」 $classname = 『mytest\myclass』 "

常量值1

常量值2

常量值3

常量值4

所以無論在有無命名空間namespace的情況下,用new建立類物件的方式、用類名呼叫函式的方式和自身呼叫的方式不會受到影響;而在命名空間namespace存在的情況下,用類名賦給字串再呼叫的方式( $ classname = 『myclass』 ; $ classname::showconstant();)會有異常,類似於( $classname = 『\myclass』 ,完全限定名稱,namespace為全域性)

參考文件 | 菜鳥教程 | php教程

PHP基礎知識點總結01

1,var dump 與print r,echo的區別?var dump 直接列印出來變數的值和資料型別,一般列印陣列時更有可讀性,echo直接列印相應的值,但是如果是陣列則直接列印相應的資料型別。print r會列印陣列的值但是不會列印出來相應的資料型別。2,include,require,inc...

PHP基礎知識點

global x,y globalsphp 同時在名為 globals index 的陣列中儲存了所有的全域性變數。下標存有變數名。這個陣列在函式內也可以訪問,並能夠用於直接更新全域性變數。x 0 ec hox x 注釋 該變數仍然是函式的區域性變數。建立並使用乙個簡單類 class car fun...

PHP基礎知識點

傳輸協議 只不過http是一種常見協議,不是很安全 https是一種加密傳輸協議 網域名稱 埠號 我們就能看到這個頁面了 定義變數 條件語句 迴圈語句 字串拼接 陣列mysql 是最流行的關係型資料庫管理系統 非關係型資料庫簡略介紹 關聯式資料庫管理系統 relational database ma...