PHP 學(xué)習(xí)之路(3)—— PHP 基本語(yǔ)法

語(yǔ)言與語(yǔ)言之間都會(huì)有相似的語(yǔ)法籍救,也有它獨(dú)有的語(yǔ)法。所以本節(jié)還是得記錄一下 PHP 的基礎(chǔ)語(yǔ)法~


一、PHP 標(biāo)記

PHP 也是通過標(biāo)記來識(shí)別的祝拯,像 JSP 的 <% %> 的一樣滤愕,PHP 的最常用的標(biāo)記是:<?php php 代碼 ?> 温算。

以 “<?” 開始,“?>”結(jié)束间影。
該風(fēng)格是最簡(jiǎn)單的標(biāo)記風(fēng)格注竿,默認(rèn)是禁止的,可以通過修改 short_open_tag 選項(xiàng)來允許使用這種風(fēng)格魂贬。

[捂臉哭] 我們其實(shí)目前不需要去配置這個(gè)風(fēng)格哈巩割,老老實(shí)實(shí)用 <?php php 代碼 ?> 就夠了~

二、基礎(chǔ)語(yǔ)法

1. PHP 語(yǔ)句都以英文分號(hào)【;】結(jié)束付燥。

2. PHP 注釋

大體上有三種:

<?php
    /*
    多行注釋
     */
    echo "string";// 單行注釋
    echo "string";# 單行注釋
 ?>

sublime text 3 神奇快捷鍵:ctrl shift d => 復(fù)制當(dāng)前行到下一行

3. 輸出語(yǔ)句:echo

<?php
    echo "string";
    echo("string");
 ?>

PHP 可以嵌套在 HTML 里面寫宣谈,所以也可以輸出 HTML、CSS键科、JavaScript 語(yǔ)句等闻丑。

 <font id="testPhpJs"></font>
 <?php
    echo "<style type='text/css'>#testPhpJs {color: red}</style>";
    echo "<h1>一級(jí)標(biāo)題</h1>";
    echo "<script>var font = document.getElementById('testPhpJs');font.innerText='php輸出js填充的文字';</script>";
 ?>
 <input type="text" name="test" value="<?php echo "123"; ?>">

網(wǎng)頁(yè)輸出結(jié)果:

4. 變量及變量類型

PHP 的類型有六種,整型勋颖、浮點(diǎn)型嗦嗡、字符串、布爾型饭玲、數(shù)組酸钦、對(duì)象。

但是定義的方式只有一種:$ 變量名咱枉。PHP 變量的類型會(huì)隨著賦值的改變而改變(動(dòng)態(tài)類型)

<?php
    $variable = 1;          //整型
    $variable = 1.23;       //浮點(diǎn)型
    $variable = "字符串";      //字符串 ""
    $variable = '字符串';      //字符串 ''
    $variable = false;      //布爾型
?>

特殊的變量(見附錄)卑硫。

5. 字符串

關(guān)于字符串,我們還有幾點(diǎn)需要說的:

a. 雙引號(hào)和單引號(hào)

這兩者包起來的都是字符串:'阿'蚕断、"阿"欢伏。注意單引號(hào)里不能再加單引號(hào),雙引號(hào)里不能再加雙引號(hào)亿乳,實(shí)在要加的話記得用轉(zhuǎn)義符 “ \

b. 定界符

如果想輸出很大一段字符串硝拧,那么就需要定界符來幫忙径筏。定界符就是由頭和尾兩部分。

<?php
    echo <<<EOT
hello world!
lalala~
EOT;
// 這個(gè)定界符的尾巴和前面<<<后面的字符應(yīng)該一樣
// !定界符的尾巴必須靠在最左邊
?>

定界符的名字是自己起的障陶,樂意叫啥就叫啥滋恬,但是它的尾巴必須靠在最左邊,不能有任何其他的字符抱究!空格也不行:

<?php
//定界符的名字隨便起
echo <<<ERROR
    ERROR;
//但是尾巴必須靠左恢氯,前面不能有任何東西。比如這樣就是錯(cuò)的 ↑
?>

看鼓寺!上面這個(gè)注釋都變成綠色了~ 它都報(bào)錯(cuò)了勋拟,大家寫的時(shí)候可不能這么寫哦~O(∩_∩)O哈哈~

6. 字符串連接

不同于 Java 的 “+” 號(hào)連接符,PHP 用的是點(diǎn)【.】妈候。在做數(shù)據(jù)庫(kù)查詢語(yǔ)句的時(shí)候敢靡,常會(huì)遇到要與變量拼接的情況。這里給個(gè)小技巧:

在數(shù)據(jù)庫(kù)相關(guān)軟件中先用一個(gè)數(shù)據(jù)例子寫好查詢語(yǔ)句苦银,并測(cè)試直到執(zhí)行成功:


然后將數(shù)據(jù)換成變量:

  1. 將 sql 語(yǔ)句用字符串變量存儲(chǔ)啸胧。

  2. 將寫死的數(shù)據(jù)換成兩個(gè)雙引號(hào)

  3. 在雙引號(hào)中間加兩個(gè)連接符 點(diǎn)【.】

  4. 在連接符中間將變量放入

<?php
$isbn = "9787508353937";//存儲(chǔ)isbn的變量
$sql = "SELECT * FROM bookinfo WHERE isbn = '9787508353937'";
//  $sql = "SELECT * FROM bookinfo WHERE isbn = '""'";
//  $sql = "SELECT * FROM bookinfo WHERE isbn = '".."'";
$sql = "SELECT * FROM bookinfo WHERE isbn = '".$isbn."'";
//修改完成
?>

保證不會(huì)出錯(cuò)哈哈(這個(gè)多用于數(shù)據(jù)庫(kù)的增刪改查,避免 sql 語(yǔ)句的錯(cuò)誤)

7. 表單數(shù)據(jù)

表單在提交數(shù)據(jù)的時(shí)候幔虏,method 有兩種方式:post & get纺念。所以 PHP 有幾種不同的方式來獲取表單數(shù)據(jù):

<?php
$_POST['表單控件名稱']        //對(duì)應(yīng)POST方式提交的數(shù)據(jù)
$_GET['表單控件名稱']         //對(duì)應(yīng)GET方式提交的數(shù)據(jù)
$_REQUEST['表單控件名稱']     //同時(shí)適用于兩種方式
?>

8. 運(yùn)算符

運(yùn)算符和其他語(yǔ)言基本一致,如果不了解的可以去看看我的 java 運(yùn)算符(https://blog.csdn.net/ahanwhite/article/details/89461167)所计。

但這里還是有一個(gè)比較特殊的:

字符串連接賦值:【.=】

<?php
$str = "這是連接";
$str .= "字符串的運(yùn)算符";
// 那么現(xiàn)在的$str = "這是連接字符串的運(yùn)算符";
?>

9. 分支與選擇

同樣和其他語(yǔ)言差別不大柠辞,有興趣可以看我的 java 控制語(yǔ)句(https://blog.csdn.net/ahanwhite/article/details/89461652

10. PHP 函數(shù)

PHP 的函數(shù)和 Java 還是有點(diǎn)兒區(qū)別团秽,定義的格式:

<?php
function 函數(shù)名($參數(shù)) {
    函數(shù)體;
}
?>

a. 函數(shù)參數(shù)可以為空

b. 如果需要修改函數(shù)的值主胧,可以使用引用參數(shù)傳遞,但是需要在參數(shù)前面加上【&】

c. 函數(shù)的參數(shù)可以使用默認(rèn)值习勤,在定義函數(shù)是參數(shù)寫成: $ 參數(shù) =“默認(rèn)值”; 即可踪栋。(默認(rèn)值又叫缺省值)。

<?php
//改變參數(shù)變量的值
function myName(&$name) {
    $name = "baibai";
    echo $name;
}
$name = "huanhuan";
myName($name);
//設(shè)置默認(rèn)參數(shù)值
function myName2($name="baibai") {
    echo "<br>".$name;
}
//不傳參測(cè)試默認(rèn)值
myName2();
?>

輸出結(jié)果:

d. PHP 也有一些自己的系統(tǒng)函數(shù)(比如 echo)图毕,這里再列幾個(gè)常用的字符串函數(shù):

  • 字符串長(zhǎng)度計(jì)算
$a = mb_strlen("abdsd");
$b = mb_strlen("lalalal",'UTF-8')

我一般用后面這個(gè)夷都,按 utf-8 編碼計(jì)算長(zhǎng)度。

  • 在一個(gè)字符串中查找另一個(gè)字符串
strstr(字符串1予颤,字符串2)

補(bǔ)充一個(gè)函數(shù) var_dump() 【實(shí)名感謝石老師】
用來判斷一個(gè)變量的類型與長(zhǎng)度, 并輸出變量的數(shù)值, 如果變量有值輸?shù)氖亲兞康闹挡⒒胤禂?shù)據(jù)類型. 此函數(shù)顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息囤官,包括表達(dá)式的類型與值。數(shù)組將遞歸展開值蛤虐,通過縮進(jìn)顯示其結(jié)構(gòu)党饮。

<?php
$a = strstr("asgduiashufai","dui");
$b = strstr("asgduiashufai","?");
 
echo var_dump($a);
echo "<br>";
echo var_dump($b);
?>

如果存在前面的字符串里存在后面的字符串驳庭,那么會(huì)返回字符串 2 以及在字符串 1 里后面的所有字符刑顺。如果不存在氯窍,就會(huì)返回 false(但是不能直接輸出,直接輸出好像是空值蹲堂,判斷一下再輸出提示信息會(huì)比較好)


  • 按照 ASCII 碼比較兩個(gè)字符串大小
strcmp("字符串1","字符串2")
 
//1比2打狼讨,返回大于0,2比1打,返回小于0柒竞,一樣大的話返回等于0
  • 將 html 標(biāo)記作為字符串輸出
htmlspecialchars("字符串")
  • 改變字符串大小寫
strtolower("字符串");//將字符串全變成小寫
 
strtoupper("字符串");//將字符串全變成大寫
  • 加密函數(shù)
    md5() 將一個(gè)字符串進(jìn)行 MD5 加密計(jì)算政供。(沒有解密的函數(shù),用于密碼能犯,檢驗(yàn)時(shí)將用戶提交的密碼加密之后進(jìn)行對(duì)比)
$a = md5("字符串");

附錄

特殊的變量



以上鲫骗,阿里嘎多,20190426 from ahanwhite踩晶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末执泰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子渡蜻,更是在濱河造成了極大的恐慌术吝,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茸苇,死亡現(xiàn)場(chǎng)離奇詭異排苍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)学密,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門淘衙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腻暮,你說我怎么就攤上這事彤守。” “怎么了哭靖?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵具垫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我试幽,道長(zhǎng)筝蚕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任铺坞,我火速辦了婚禮起宽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘济榨。我一直安慰自己坯沪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布腿短。 她就那樣靜靜地躺著屏箍,像睡著了一般绘梦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赴魁,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天卸奉,我揣著相機(jī)與錄音,去河邊找鬼颖御。 笑死榄棵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潘拱。 我是一名探鬼主播疹鳄,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼芦岂!你這毒婦竟也來了瘪弓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤禽最,失蹤者是張志新(化名)和其女友劉穎腺怯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體川无,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呛占,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懦趋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晾虑。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仅叫,靈堂內(nèi)的尸體忽然破棺而出帜篇,到底是詐尸還是另有隱情,我是刑警寧澤惑芭,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布坠狡,位于F島的核電站继找,受9級(jí)特大地震影響遂跟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婴渡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一幻锁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧边臼,春花似錦哄尔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)富拗。三九已至,卻和暖如春鸣戴,著一層夾襖步出監(jiān)牢的瞬間啃沪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工窄锅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留创千,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓入偷,卻偏偏與公主長(zhǎng)得像追驴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疏之,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355