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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MordenPHP阅读笔记(一)——先跑再说,跑累了再走,mordenphp先跑_PHP教程

發布時間:2023/12/15 综合教程 47 生活家
生活随笔 收集整理的這篇文章主要介紹了 MordenPHP阅读笔记(一)——先跑再说,跑累了再走,mordenphp先跑_PHP教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MordenPHP閱讀筆記(一)——先跑再說,跑累了再走,mordenphp先跑


---恢復內容開始---

  后臺一大堆半成品,或者是幾乎不成的。。。

這本書不錯,起碼是別人推薦的,然后也是比較新的東西,學哪本不是學嘛,關鍵是得看。

今兒個網不好,科研所需的代碼下不到,看書做筆記吧。

這本書基本將的是5.4版本后的一些新變化,寫的淺顯易懂,雖然鄙人走的還不順溜,跑一跑也摔不到哪兒去,跑累了我有的是走的機會~~

(一)特性

一、命名空間

一個文件一個類,用了命名空間方便互相調用;

 1 //
 2 //Namespace
 3 //
 4 namespace ModernPHP\feature\mingmingkongjian;
 5 function var_dump(){
 6     echo "Shit!"."
"; 7 } 8 9 $test="OK"; 10 var_dump($test); 11 \ModernPHP\feature\mingmingkongjian\var_dump(); 12 13 //命名空間必須頂頭,但一個文件中可以有很多命名空間,然后也可以有子空間 14 //廠商的命名空間是最頂層的命名空間,用于識別品牌 15 //旨在解決命名沖突的問題,當然現在應該有比較靈活的其他用法 16 17 //一個比較實用的點:導入和別名 18 //導入另一個文件夾下的類定義,直接用 19 require 'index.php'; 20 use a\aaa; 21 $daoru=new aaa; 22 $daoru->send(); 23 //use是導入,然后在use中設置最懶的別名 24 //另外,5.6版本后可以實現use 函數 25 // use func a\call; 26 // \a\call();

登錄后復制

index.php

 1 <?php
 2 namespace a;
 3 class aaa{
 4     public function send(){
 5         echo "ok";
 6     }
 7 }
 8 
 9 function call(){
10     echo "func_use is successful.";
11 }

登錄后復制

二、使用接口

接口,本來沒太懂,看懂了之后簡直了,牛逼啊!

一個接口,大家只要遵守接口規定,就都能用,就這么個意思。

下面是一個獲得內容的接口示例,還可以寫更多基于此接口的模塊;(其中,模塊中getContent的我基本都不會。。。哭)

<?php
//
//Chapter2.P19
//Feature_Interface
//
namespace ModernPHP\feature\jiekou;



class DocumentStore{
    protected $data=[];
    
    public function addDocument(Documentable $document){  //這里注明只能使用接口的參數
        $key=$document->getID();
        $value=$document->getContent();
        $this->data[$key]=$value;
    }
    
    public function getDocuments(){
        return $this->data;
    }
}

interface Documentable{     //定義接口,說白了就是定規矩,其他地方要用,就得說一聲
    public function getId();
    
    public function getContent();
}

class HtmlDocument implements Documentable{   //聲明要用接口;這個是獲得url的內容的
    protected $url;
    
    public function __construct($url){
        $this->url=$url;
    }
    
    public function getId(){
        return $this->url;
    }
    
    public function getContent(){
        $ch=curl_init();   //這里的curl是針對url進行操作一個庫(相當于)。這個命令是開啟一個curl對話,所以下面這些都是一個對話
        curl_setopt($ch, CURLOPT_URL, $this->url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,3);
        curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch,CURLOPT_MAXREDIRS,3);
        $html=curl_exec($ch);   //由這個命令執行剛才的對話
        curl_close($ch);
        
        return $html;
    }
}




$documentStore=new DocumentStore();

$htmlDoc=new HtmlDocument('http://www.baidu.com');
$documentStore->addDocument($htmlDoc);



print_r($documentStore->getDocuments());

登錄后復制

另一個模塊

 1 class StreamDocument implements Documentable{  //流媒體
 2     protected $resource;
 3     protected $buffer;   //緩沖區大小
 4     
 5     public function __construct($resource,$buffer=4096){
 6         $this->resource=$resource;
 7         $this->buffer=$buffer;
 8     }
 9     
10     public function getId(){
11         return 'resource-'.(int)$this->resource;
12     }
13     
14     public function getContent(){
15         $streamContent='';
16         rewind($this->resource); //rewind() 函數將文件指針的位置倒回文件的開頭
17         while (feof($this->resource)===false){    //feof() 函數檢測是否已到達文件末尾 (eof)。
18             $streamContent.=fread($this->resource,$this->buffer);
19         }
20         
21         return $streamContent;
22     }
23 }

登錄后復制

三、性狀

奇怪的東西。。。

其實就是為了多重繼承或者一對多個不同的類別吧

 1 <?php
 2 //
 3 //Chapter2.P23
 4 //Feature_Trait
 5 //性狀
 6 //
 7 
 8 //前面說的接口,是針對同類型的東西,實現相同的功能的;
 9 //這里的性狀是針對不同的東西,實現相同的功能
10 
11 //基本用法如下
12 trait traitName{
13     public function testThis(){
14         echo "This is how trait works."."
"; 15 } 16 } 17 18 trait traitMore{ 19 public function testAgain(){ 20 echo "This is multiple use."."
"; 21 } 22 } 23 24 class className{ 25 use traitName; 26 use traitMore; 27 28 } 29 30 $classMine=new className(); 31 $classMine->testThis(); 32 $classMine->testAgain();

登錄后復制

四、生成器

直接上代碼

 1 <?php
 2 //
 3 //Chapter2.P26
 4 //Feature_Generator
 5 //生成器
 6 //
 7 
 8 //其實就是在函數中使用了yield語句的東西
 9 //優點在于節省了內存使用情況
10 //方法是通過動態分配內存進行循環操作
11 //典型用處是處理csv類數據文件
12 
13 namespace ModernPHP\feature\shengchegnqi;
14 
15 function getRows($file){
16     $handle=fopen($file,'rb');
17     if ($handle===false){
18         throw new Exception();  //拋出錯誤原因
19     }
20     while (feof($handle)===false) {
21         yield fgetcsv($handle);
22     }
23     fclose($handle);
24 }
25 
26 foreach (getRows('data.csv') as $row){
27     print_r($row);
28     echo "
"; 29 } 30 //當數據文件很大時,效果尤其明顯

登錄后復制

五、閉包

這里閉包基本等于匿名函數

 1 <?php
 2 //
 3 //Chapter2.P29
 4 //Feature_ClosePatch
 5 //閉包或匿名函數
 6 //
 7 
 8 //把函數當作是變量
 9 //然后它就可以像變量一樣用來用去了。。
10 //常用做函數和方法的回調
11 
12 namespace ModernPHP\feature\bibao;
13 $var=function ($name){
14     return sprintf('Hello %s',$name);
15 };
16 
17 echo $var('Andy');
18 
19 //做回調
20 $array=[2,3,4];
21 $num=array_map(function ($number){  //array_map,將函數作用到數組中的每個值上,每個值都乘以本身,并返回帶有新值的數組
22     return $number+1;
23 },$array);
24 print_r($num);

登錄后復制

六、附加狀態

這個沒搞懂。。。

(二)標準

PHP-FIG的一些約定俗成;

---類名稱,駝峰式,ShitHappens

---方法名稱,駝峰式,但首字母小寫,shitHappens

---縮進統一為4個空格

---不寫?>結束符號;

---{另起一行;

---命名空間要有空格;

---類中屬性和方法必須有可見性聲明;

---if等控制性結構后面有空格;

 1 <?php
 2 //
 3 //Chapter3.P44
 4 //PHP-FIG puts PSRs
 5 //
 6 
 7 namespace ModernPHP\standard\realize;
 8 
 9 use ModernPHP\feature\bibao;
10 use ModernPHP\feature\fujiazhuangtai;
11 
12 class ShitHappens
13 {
14     public $a;
15     
16     public function suck()
17     {
18         if ($this->a===false){
19             return true;
20         }
21     }
22 }

登錄后復制

----------------------

后面的都是講述的東西,有需要的我再寫吧。

http://www.bkjia.com/PHPjc/1121987.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1121987.htmlTechArticleMordenPHP閱讀筆記(一)——先跑再說,跑累了再走,mordenphp先跑 ---恢復內容開始--- 后臺一大堆半成品,或者是幾乎不成的。。。 這本書不...

總結

以上是生活随笔為你收集整理的MordenPHP阅读笔记(一)——先跑再说,跑累了再走,mordenphp先跑_PHP教程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 毛片在线免费观看网址 | 杏导航aⅴ福利网站 | 九九久久国产视频 | 国产又爽又黄的激情精品视频 | 免费看国产黄色片 | 欧美亚洲在线 | 一级黄色a级片 | 日韩一区二区三区网站 | 国产欧美在线视频 | 国产毛片久久久 | 久久精品毛片 | 丁香网五月天 | 欧美视频你懂的 | 后进极品白嫩翘臀在线视频 | 综合激情久久 | 欧美精品中文 | 国产亚洲自拍一区 | аⅴ资源新版在线天堂 | 91免费黄色| 国产一区二区三区视频播放 | 视频国产一区 | av五月 | 午夜亚洲国产 | 中文在线字幕 | 伊人成年综合网 | 亚洲视频精品一区 | 中字幕一区二区三区乱码 | 国产精品丝袜一区 | 日本在线不卡一区二区三区 | 日韩成人综合 | 黄色福利网 | 成人激情综合网 | 天天色宗合 | 国产一区欧美 | 在线观看黄 | 希岛婚前侵犯中文字幕在线 | 男女视频网站 | 精品中文字幕在线观看 | 亚洲国产精品无码久久久 | 成人在线观看一区二区三区 | 日韩三级中文 | 日本一区视频 | 尤物影院在线观看 | 韩国精品一区 | 激情文学久久 | 蜜桃久久久久久久 | 综合久久久久综合 | 日本一区二区三区四区视频 | 国产农村熟妇videos | 无码国模国产在线观看 | 亚洲男人网站 | 天天操天天干视频 | 国产精品久久久久久69 | 青草视频免费在线观看 | 十大污视频 | 一区二区三区国产视频 | 丰满人妻一区二区三区53视频 | 超碰123| 欧美日韩亚洲成人 | 又污又黄又爽的网站 | 狼人精品一区二区三区在线 | 久久爱一区二区 | 日韩黄色影院 | 免费黄色视屏 | 少妇被躁爽到高潮无码人狍大战 | 熟女少妇精品一区二区 | 欧美黄色片网站 | 国产精品国产三级国产aⅴ9色 | 91嫩草欧美久久久九九九 | 丰满熟女人妻一区二区三区 | 日本中文字幕在线免费观看 | 国产对白羞辱绿帽vk | 日本精品免费一区二区三区 | 日本一本在线 | 久久精品天天中文字幕人妻 | 日韩一区中文 | 中文字幕一区二区三区在线观看 | 级毛片| 午夜精品一区二区在线观看 | 亚洲大成色 | 芭乐视频色 | 韩日欧美 | 巨茎大战刘亦菲 | 日韩激情国产 | 欧美三p| 亚洲欧洲国产日韩 | 91极品国产 | 无人在线观看高清视频 | 久久久久久久一 | 超能一家人电影免费喜剧在线观看 | 日韩一区在线看 | 亚洲精品在线视频 | 国产肉体xxxx裸体784大胆 | 午夜精品一区二区三区免费视频 | 日日草视频 | 久久天堂网 | 嫩草视频在线免费观看 | 久久国产视频精品 | 中文字幕+乱码+中文字幕一区 |