前言:跟著菜鳥教程學習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...