php 鍊式寫入法是什麼
php鍊式寫入“$tree->setAge()->setID()->setName();”,其中在php類別中this指標指向類別/物件本身,它就像一個繩子把類別/物件和類別的屬性、函數連接起來。
#本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
鍊式寫法在許多物件導向的程式語言都存在,個人簡單理解就是鍊錶,確實和鍊錶的使用很相識。 this指標是鍊式操作的基礎。
this指標在不同的程式語言中的功能差不多,具體的小細節不一樣。 但是有一個基礎就是指向物件/函數/類別本身。基於這個基礎就可以實現鍊式寫法。
以php為例。
在php類別中this指標($this)指向類別/物件本身,它就像一個繩子把類別/物件和類別的屬性、函數連接起來。並可以透過它來呼叫對應的對應的屬性和函數(方法)。如下圖所示:
php程式的demo:
<?php /** * Created by PhpStorm. * User: dell * Date: 2017/3/31 * Time: 21:42 */ /* *注释的规范写法:@param [参数类型] 参数名 参数解释 * @return 返回值 [类型] 返回值名 返回值说明 */ class Tree{ private $id ; private $name; private $age; /* * * @param null * @return null * */ public function _construct() { //构造函数 } /* * * @param [array] $arr 参数1 * @return null * */ public function init( $arr = array() ) { //初始化函数 $arrs = array(); //设置默认参数 $arrs = [ 'id'=> 1, 'name'=> 'user', 'age' => 18 ]; if( !(is_array($arr)) ) { //如果传进来的数据不是数组则默认是id $this->id = intval( $arr ); } $arrs = array_merge( $arrs , $arr );//合并数组 //给类的属性赋值 $this->id = $arrs['id']; $this->name = $arrs['name']; $this->age = $arrs['age']; } /* * * @param [int] $data 参数1 * @return $this * */ public function setID( $data = 0 ) { //判断是不是数字 $this->id =is_numeric( $data )? $data : intval($data) ;//判断是否是数字,是赋值,否则转为数字在赋值 return $this;//返回this指针 } /* * * @param [string] $data 参数1 * @return $this * */ public function setName( $data = 'user' ) { //判断是不是数字 $this->name =is_string( $data )? $data : strval($data) ;//判断是否是字符串,是赋值,否则转为字符串在赋值 return $this;//返回this指针 } /* * * @param [int] data 参数1 * @return $this * */ public function setAge( $data = 18 ) { //判断是不是数字 $this->age =is_numeric( $data )? $data : intval($data) ;//判断是否是数字,是赋值,否则转为数字在赋值 return $this;//返回this指针 } }; $tree = new Tree(); $array = array(); $array['id'] = 10; $array['name'] = 'admin'; $array['age'] = 20; $tree->init($array); var_dump($tree);//打印结果 $tree->setAge()->setID()->setName();//链式写法 var_dump($tree);//在打印看链式写法是否有效 ?>
# 輸出結果:
函數/方法能實作鍊式寫入的前提是回傳值是this指標(php中return $this,js中return this,其他語言也類似)。這樣才能實現調用這個函數後返回this指針,衝邏輯來說,此時返回的是類別本身,然後接著繼續調用函數,又返回this指針,如此循環。
當然各個程式語言有不同的地方,例如c 是->,php->,而js或jq則是. ;調用的形式不同但是原理一樣。
一點,有this指針,回傳this指針,然後就能實現鍊式寫法並能循環使用->fun1(return this)->fun2(return this )->fun3 (return this)…… 。
以上是php 鍊式寫入法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。
