摘要:本文適合閱讀用戶有其他語言基礎的童鞋看完語法教程來回顧一下的童鞋傳送門,想全面看一下語法推薦這里毫無基礎然而天資聰慧頗有慧根不要左顧右看說的就是你,老夫這里有一本從入門到放棄,觀你根骨清奇兩銀子賣給你如何看完本文后你會收獲到什么的變量的定義
本文適合閱讀用戶
有其他語言基礎的童鞋
看完w3cschool語法教程來回顧一下的童鞋(傳送門,想全面看一下php語法推薦這里)
毫無基礎然而天資聰慧頗有慧根(不要左顧右看說的就是你,老夫這里有一本《php從入門到放棄》,觀你根骨清奇10兩銀子賣給你如何)
看完本文后你會收獲到什么php的變量的定義,使用
函數的定義,使用,傳遞參數
數組的定義,調用,常用方法,使用場景
php中循環,判斷,選擇結構的語法
類的定義,成員變量和成員函數的定義和使用
相信我,認真看完本文,你就已經掌握了php常用的語法了,足以進行一些常規的開發,剩下的可以用到再學,避免在學了忘學了忘的語法坑中沉迷太久(??????)??用php導演一場情景劇
這就是今天的目的,假設我們已經搭建好了環境(下一節會講),現在開始進行 編碼 創造世界。
首先定義一下我們的題目,myphp
//定義我們的題目 $title = "myphp";
php定義變量用$符號,php是弱類型變量語言,不區分變量的類型,""和它里邊內容在一起表示一個字符串。 另外//表示注釋,就是解釋性的話,并不會作為代碼運行
//這個方法用來輸出 function show($str) { echo $str . "
"; }
再定義一個方法(也叫函數,只是叫法不一樣而已啦),定義方法用function關鍵字,括號里的是參數,直接用變量表示就可以,在調用的時候接收調用時傳來的參數
echo是php自帶的輸出方法,沒有括號是因為它比較特殊,可以先不管,會用就行
.是php中字符串拼接的符號,
是html中的換行符,為了讓輸出更好看
//方法直接調用就好 show("hello " . $title);
輸出如下圖
//定義發生異常時觸發的函數 function error($str) { echo "{$str}
"; exit(); }
在""雙引號內,可以直接用花括號包裹起來一個變量,這樣在被調用的時候變量就會直接在字符串中替換為變量的值,單引號不可以
exit()方法讓整個程序結束
//用[]可以直接創建一個空的數組,然后一一賦值 $person1 = []; $person1["name"] = "高富帥"; $person1["sex"] = "男"; //也可以直接創建一個有值的數組 $person2 = ["name" => "白富美", "sex" => "女"]; //這是一個二維數組,也可以用同樣的方式創建更多維的數組 $persons = [$person1, $person2];
既然是情景劇,得有個男女主角呀,打印出來看看這個二維數組,發現下標是從0開始的,不要奇怪所有編程語言都是這樣的
接下來定義一個類,類可以暫時理解為一些數據和方法的集合,也就是我們的情景劇啦
class MyPhp { }
定義類用class關鍵字,空格后是類的名字,注意只能是英文字母或者下劃線_開頭
情景劇不能什么都沒有啊,我們再給它定義一些必要的成員變量和成員方法
class MyPhp { //表示我們的演員們 public $actors = null; //自帶bgm的情景劇 public $music = "我心永恒"; public function __construct() { $this->start(); } public function start() { $time = time(); show("時間:{$time}"); $date = date("Y-m-d h:m:s", $time); show("哦~一般人還是看日期好一點 {$date}"); show("播放片頭曲~~{$this->music}"); } }
成員變量:成員變量直接用$符號聲明就可以,public private protected 是成員變量的訪問控制權限(同樣適用于成員方法),分別表示共有,私有,受保護的,null是php里的空指針的關鍵字
成員方法:
有一些自帶的成員方法,比如構造函數__construct,php中__開頭(兩個下劃線)的函數都是默認自帶的函數,__construct是構造函數,初始化一個類對象的時候會調用這個方法
可以自己定義成員方法,如start這個方法,定義方法和普通方法一樣,控制權限和成員變量一樣也是public private protected三個
調用成員變量,如$this->music,注意此時成員變量不要加$符號。調用成員方法,如$this->start()
時間和日期:time()方法獲取一個當前的時間戳,date()方法接受兩個參數,第一個是一個字符串表示格式化格式,第二個參數是一個時間戳,返回格式化之后的時間
//定義一個方法,讓演員加入進來 public function actorJoin($actorlist) { //我們判斷演員是一個數組并且有兩個人才可以,否則男女主角肯定有一個人沒來或者第三者插足了 if (is_array($actorlist) && count($actorlist) == 2) { $this->actors = $actorlist; } else { error("還有演員沒有就位"); } }
is_array()方法判斷參數變量是否是數組
count()方法返回參數數組的長度
if(){}else{}結構是條件語句語法,括號內的判斷語句如果成立,程序運行if下邊大括號內的內容,否則運行else下大括號的內容
//情景劇一開始們,演員得自我介紹一下吧,流程不能省 public function introduce() { if (empty($this->actors)) { error("大家好我是導演,男女主角偷偷約會還沒結束,今天可能來不了了"); } foreach ($this->actors as $actor) { $intro = "我是{$actor["name"]},"; switch ($actor["sex"]) { case "女": show($intro . "我是女主角。"); break; case "男": show($intro . "我是男主角。"); break; default: show($intro . "抱歉,我不知道我什么性別。"); break; } } }
empty()函數判斷數組是否為空,空返回true,也就是正確的意思,此處沒有else,代表如果不滿足if的條件,程序直接往下走,不運行大括號內的代碼。
foreach循環遍歷數組,foreach($arr as $val),就是說對把$arr的所有成員依次賦值給$val,循環的次數就是$arr的長度
switch語句針對同一地方不同值進行選擇,可以避免多次if else,性能和可讀性也更好
switch后跟隨的括號表示選擇的變量
case后的值和冒號后的代碼,表示對應值和要運行的代碼,注意要添加break,表示跳出本次判斷,不然代碼會繼續往下運行
defaul表示沒有滿足以上規定的case的時候,就運行default的代碼
//表演開始啦 public function action() { if (empty($this->actors)) { error("演員臨時有事,謝謝大家捧場"); } //這是我們的劇本 $play = array(); $play[] = "{$this->actors[0]["name"]} 和 {$this->actors[1]["name"]} 在街邊相遇"; $play[] = "{$this->actors[0]["name"]} 深情脈脈的看著 {$this->actors[1]["name"]}"; $play[] = "以下省略一萬字,請自行腦補......"; $play[] = "全劇終"; foreach ($play as $key => $val) { show("第{$key}幕"); show($val); } } //不能草草結束,補個片尾曲 public function end() { show("片尾曲,撒花完結"); }
array()函數會返回一個數組,如果沒有參數就是一個空數組,也是創建數組的一個方式
**$this->actors[0]["name"]**,返回的是$this->actors的第一個成員的key為name的值
foreach循環的第二種方式,as后邊如果是 $key=>$val 這種,就會把數組的鍵賦值給$key,值賦值給$val,比上一種多了key可以使用
好啦,萬事俱備,現在讓它運行起來吧
$myphp = new MyPhp(); $myphp->actorJoin($persons); $myphp->introduce(); $myphp->start(); $myphp->action(); $myphp->end();
new MyPhp()會創建一個MyPhp類型的類對象,讓一個變量指向這個對象,就可以對這個對象的成員變量和成員方法進行調用和改動了。
看看在瀏覽器上的輸出
改一改在命令行里讓它動態跑一下看效果(怎么弄的不重要)
好啦,回顧一下文章開頭的你會收獲到什么,你都學會了嗎?附:全部代碼
不要急,下一節會講搭建php環境,你就可以自己演個情景劇啦
"; } //方法直接調用就好 show("hello " . $title); //exit()方法讓整個程序結束 //在""雙引號內,可以直接用花括號包裹起來一個變量,這樣在被調用的時候變量就會直接在字符串中替換為變量的值,單引號不可以哦 function error($str) { echo "{$str}
"; exit(); } //用[]可以直接創建一個空的數組,然后一一賦值 $person1 = []; $person1["name"] = "高富帥"; $person1["sex"] = "男"; //也可以直接創建一個有值的數組 $person2 = ["name" => "白富美", "sex" => "女"]; //這是一個二維數組,也可以用同樣的方式創建更多維的數組 $persons = [$person1, $person2]; //定義類用class關鍵字 class MyPhp { //成員變量直接用$符號聲明就可以 //public private protected 是成員變量的訪問控制權限 //null是php里的空指針的關鍵字 public $actors = null; public $music = "我心永恒"; //php中__開頭(兩個下劃線)的函數都是默認自帶的函數 //__construct是構造函數,初始化一個類對象的時候會調用這個方法 public function __construct() { $this->start(); } public function start() { //time()方法獲取一個當前的時間戳 //date()方法接受兩個參數,第一個是一個字符串表示格式化格式,第二個參數是一個時間戳,返回格式化之后的時間 $time = time(); show("時間:{$time}"); $date = date("Y-m-d h:m:s", $time); show("哦~一般人還是看日期好一點 {$date}"); //$this->music 調用成員變量,注意此時成員變量不要加$符號 show("播放片頭曲~~{$this->music}"); } //演員加入 public function actorJoin($actorlist) { //is_array()方法判斷參數變量是否是數組 //count()方法返回參數數組的長度 //if(){}else{}是條件語句語法,括號內的判斷語句如果成立,程序運行if下邊大括號內的內容,否則運行else下大括號的內容 if (is_array($actorlist) && count($actorlist) == 2) { $this->actors = $actorlist; } else { error("還有演員沒有就位"); } } public function introduce() { //empty()函數判斷數組是否為空,空返回true,也就是正確的意思 //此處沒有else,代表如果不滿足if的條件,程序直接往下走,不運行大括號內的代碼。 if (empty($this->actors)) { error("大家好我是導演,男女主角偷偷約會還沒結束,今天可能來不了了"); } //foreach循環遍歷數組,foreach($arr as $val),就是說對把$arr的所有成員依次賦值給$val,循環的次數就是$arr的長度 foreach ($this->actors as $actor) { $intro = "我是{$actor["name"]},"; //switch語句針對同一地方不同值進行選擇,可以避免多次if else,性能和可讀性也更好 //switch后跟隨的括號表示選擇的變量,case后的值和冒號后的代碼,表示對應值和要運行的代碼,注意要添加break,表示跳出本次判斷,不然代碼會急需往下運行 //defaul表示沒有滿足以上規定的case的時候,就運行default的代碼 switch ($actor["sex"]) { case "女": show($intro . "我是女主角。"); break; case "男": show($intro . "我是男主角。"); break; default: show($intro . "抱歉,我不知道我什么性別。"); break; } } } public function action() { if (empty($this->actors)) { error("演員臨時有事,謝謝大家捧場"); } //array()函數會返回一個數組,如果沒有參數就是一個空數組,也是創建數組的一個方式 //$this->actors[0]["name"] 返回的是$this->actors的第一個成員的name $play = array(); $play[] = "{$this->actors[0]["name"]} 和 {$this->actors[1]["name"]} 在街邊相遇"; $play[] = "{$this->actors[0]["name"]} 深情脈脈的看著 {$this->actors[1]["name"]}"; $play[] = "以下省略一萬字,請自行腦補......"; $play[] = "全劇終"; //foreach循環的第二種方式,as后邊如果是 $key=>$val 這種,就會把數組的鍵賦值給$key,值賦值給$val,比上一種多了key可以使用 foreach ($play as $key => $val) { show("第{$key}幕"); show($val); } } public function end() { show("片尾曲,撒花完結"); } } $myphp = new MyPhp(); $myphp->actorJoin($persons); $myphp->introduce(); $myphp->start(); $myphp->action(); $myphp->end();
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29936.html
摘要:看下成果純天然,絕不添加任何添加劑以及化學成分我就是喜歡純天然,不接受任何反駁關于本文用原生的和做了一個登陸注冊,大概是可以窺見一般開發的樣子了。 看下成果 ps:純天然h5,絕不添加任何添加劑(css)以及化學成分(js)( 這行session_start() 是開啟session,必須在最開始寫,保證我們可以使用session相關的功能 如果當前session里沒有存用戶的昵...
摘要:另本文目標是迅速建立集成環境用來開發,如果想要分開一點點搭建,自行百度就好了。本文不贅述,自行百度就完事了下載地址,選中或者版即可,下載完后安裝上就好。 前言 今天講一下php在windows,mac,linux上的集成環境搭建,環境這個事得對號入座,windows用phpstudy,mac用mamp,linux用lnmp一鍵安裝,直接跳轉對應的地方看就好了。 另:本文目標是迅速建立...
摘要:一概述集合是引入的新的內置對象類型,其特點同數學意義的集合,即集合內所有元素不重復元素唯一。數組集合對比數組和集合,數組可以加入重復數據,而集合的所有元素是唯一的不允許重復。因此,適合臨時存放一組對象,以及存放跟對象綁定的信息。 本文同步帶你入門 帶你入門 JavaScript ES6 (五) 集合,轉載請注明出處。 前面我們學習了: for of 變量和擴展語法 塊作用域變量和解構...
摘要:上一篇學習下一代語法一,我們學習了關于塊作用域變量或常量聲明和語法新的字符串拼接語法模版字面量數組元素或對象元素的解構賦值和對象字面量簡寫的相關知識。這便是擴展運算符的用途之一。 本文同步 帶你入門 JavaScript ES6 (二),轉載請注明出處。 上一篇學習下一代 JavaScript 語法: ES6 (一),我們學習了關于塊作用域變量或常量聲明 let 和 const 語法、...
摘要:是國際組織于年月日發布的第六版,正式名為通常被成為或。二模版字面量提供一種簡單實現表達式嵌套的字符串字面量操作,簡而言之就是能夠以簡單的方法實現字符串拼接操作。 本文同步 帶你入門 JavaScript ES6 (一),轉載請注明出處。 ES6: 是 ECMA國際組織于 2015 年 6 月 17 日發布的 ECMAScript 第六版,正式名為 ECMAScript 2015,通常被...
閱讀 3996·2021-09-24 10:24
閱讀 1396·2021-09-22 16:01
閱讀 2718·2021-09-06 15:02
閱讀 1020·2019-08-30 13:01
閱讀 1007·2019-08-30 10:52
閱讀 636·2019-08-29 16:36
閱讀 2237·2019-08-29 12:51
閱讀 2338·2019-08-28 18:29