導航:首頁 > 編程語言 > php鏈式調用

php鏈式調用

發布時間:2022-10-19 10:10:55

① 關於php中{}的使用

1.簡單句法規則(用花括弧界定變數名,適用於PHP所有版本):
$a = 'flower';
echo "She received some $as";
// 無效;字母s會被當成有效的變數名組成元素,但是這里的變數是$a
echo "She received some ${a}s"; // 有效
echo "She received some {$a}s"; // 有效;推薦的使用方法
我們希望表達的是」她收到一些花「,語境中的flower應該採用復數形式(也就是說應該在後面加上S),但是如果不對變數做任何界定的話,就會出現第一個echo的情況。顯然我們希望輸出的是$a而不是$as。那麼我們通常是怎麼來處理這個輸出的呢?
echo "She received some $a"."s";
echo "She received some ".$a."s";
// 這兩種習慣性的寫法應該沒有加花括弧的寫法簡潔明了吧?
注意:不管{是出現在$前面還是後面,只有兩者緊挨著時花括弧才會被當成是界定符號。不要在之間加空格,要不然就會被當作普通的花括弧處理
echo "She received some { $a}s";
// 輸出的結果為:She received some { flower}s
2.復雜句法規則(用花括弧界定表達式等,使用與PHP4+):
echo "有效的寫法: {$arr[4][3]}";
// 有效;界定多維數組
echo "有效的寫法: {$arr['foo'][3]}";
// 有效;當在字元串中使用多維數組時,一定要用括弧將它括起來
echo "有效的寫法: {$this->width}00";
// 有效;如果不界定的話,就會變成 $this->width00
echo "有效的寫法: {$this->value[3]->name}";
// 有效;該例演示了界定鏈式調用
echo "有效的寫法: $name: {${$name}}";
// 有效;該例演示的效果實際上是一個可變變數
echo "有效的寫法: {${getName()}}";
// 有效;該例演示了將函數的返回值作為變數名
echo "有效的下發: {${$this->getName()}}";
// 有效;該例演示了將函數的返回值作為變數名
注意1:echo "這樣寫有效嗎: {getName()}";輸出結果為:'這樣寫有效嗎:
{getName()}'。因為裡面不含$,所以花括弧不會被當作界定符
注意2:echo "這樣寫有效嗎:{$arr[foo][3]}"; 在回答這個問題前我們先來進行一個實驗:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
echo "This is $arr[d]";
// 我們發現這樣寫是沒有問題的,那麼我們像下面這樣寫呢?
echo $arr[d];
產生了這樣的錯誤:
Notice: Use of undefined constant d - assumed 'd'
注意:採用了未定義的常量d,可能應該為'd'
那麼如果我們像下面這樣修改一下代碼的話
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd'=>'e');
define('f', 'd');
echo $arr[f];
我 們發現這次沒有問題了。可以看出在字元串中數組的索引不加單引號是沒有問題的,但是如果這種寫法不是出現在字元串當中就會報錯,而對於字元串中 {$arr[foo][3]}的解析就是按照非字元串的方式解析的。所以說在字元串當中對數組只加花括弧界定而不對索引加單引號的寫法是錯誤的。因為程序 會把不加單引號的索引當作是常量來進行解析,這就產生了錯誤。正確的寫法應該是:
echo "有效的寫法: {$arr['foo'][3]}";
特 別提醒一點:echo "This is $arr[d]";這種寫法雖然能夠被程序解析,但這也僅限於數組是一維數組的情況。嚴謹的寫法應該是:echo "This is {$arr['d']}";我的學生曾經在這一點上和我爭論過,他說:既然前面一種寫法能出結果,為什麼一定要用後面一種寫法呢?那麼,我們再繼續修改一 下前面的代碼
error_reporting(E_ALL);
$arr = array('a', 'b', 'c',
'd'=>array('e'=>'f')
);
echo "This is $arr[d][e]";
這樣還能夠被正確解析嗎?我只想告訴你,加花括弧是嚴謹的必要的。
注意3:
error_reporting(E_ALL);
$arr = array('a', 'b', 'c', 'd');
echo "This is {$arr[2]}
";
echo "This is {$arr['2']}
";
執行上面的代碼。結果是一樣的,為什麼會這樣呢?我只能告訴你PHP是弱類型語言,至於什麼叫弱類型語言我就不在這里多說了。自己去Google一下吧。說了這么多,那麼最能體現這些句法規則優勢的具體應用在什麼地方呢?----SQL語句
// 示例一:
$SQL1 = "select * from table where id={$_GET['id']}";
// 示例二:
$SQL2 = "select * from table where id={$this->id}";

② 請問php中如何調用php文件中的內容

tpl使用{php}混編php代碼。
例如
{php}echo "2333";{/php}
同理。
{php}include '.a.php';{/php}
可能是題主想要的結果。
不過需要確認好相對路徑的初始路徑,不一定為TPL所在目錄,也有可能為調用tpl的源php所在的目錄。

PS:WHMCS中使用php標簽需要在安全中,允許模板嵌入php標簽。

③ thinkphp 入口文件的send()

注意\think\App::run()源碼,返回的是一個Response對象,然後訪問此對象的send()方法。
php鏈式調用

④ 點擊鏈接調用一個php函數怎樣實現

首先,請大家看一段HTML代碼:

<html>
<head>
</head>
<body>
<input type=button on_click=a();>
</bosy>
</html>

這段HTML代碼調用了一個PHP函數:a();。以下是PHP函數a();的代碼:

<?php
function a() {echo "aaaa";};
/>

然後呢,你們可想而知:error!點擊之後沒有反應,根本沒有輸出aaaa,而是給出了錯誤信息。具體錯誤信息我就不解釋了,因為錯誤很不好辦,我們就換一種方法:直接使用提交表單的方式調用PHP函數。

那麼,我們把上一段HTML代碼更改一下,使用form表單來實現:

<html>
<head>
</head>
<body>
<form method="post" action="a.php">
<input type="submit" value="輸出信息aaaa">
</form>
</bosy>
</html>

a.php里邊的東西,我也就不說了。也沒什麼好說的,PHP代碼就很好改了。

這只是實現這種功能的一種方法,但也比較好。

我給大家舉一個例子,順便把需要解決的東西告訴大家一下。這個里邊如果你是要做比如說驗證郵箱是否被注冊的需要加一句讓網頁後退。主要是嫌麻煩一點但是是很好的方法,最適合沒有JS基礎又想用PHP服務端來做的人。

如果你熟悉JS,又想用PHP來做這個網頁,那麼在最開始的代碼上更改一下,馬上就實現了:

<html>
<head>
</head>
<body>
<input type=button on_click=a();;>
</bosy>
</html>

加一句JS:

function a()
{
aa();
};

PHP子函數aa里邊的東西我就不說了,代碼照抄就行了。

這樣吧,我好人做到底,給不知道的菜鳥講講為什麼需要這樣,省著提問一大堆:

這么跟大家說,這個PHP主要是用來在伺服器端運行並生成新的HTML代碼用的。而這個JS(JavaScript)是用來給客戶端運行的代碼,這已經簡單的不能再簡單了,至於什麼是客戶端,什麼是伺服器,在這里我就不解釋了,有興趣的朋友可以谷歌搜索一下。

我們使用JS時用的代碼就是先把PHP便已執行,做成JS代碼,在客戶端運行,這是很多大公司的作法。如果你不會JS,但是PHP和HTML精通,可以吧JS背下來,到時候使用也行,比第一種效果更好。

⑤ php中想調用url後的參數進入另一個鏈接中,不知道如何操作

方法是
<img src="<? echo $_GET['num'] ?>.gif" />
其中$_GET['num']等於你圖片的名字。
不過PHP只能實現需要刷新頁面的。

如果需要無刷新的就只能用JS了。

⑥ php如何通過url調用php文件中的方法

題主所描述的這種形式,是MVC設計模式的典型應用。

通過使用PSR4來實現自動載入,可以通過處理路由來實現

//處理路由的方法
staticpublicfunctionroute()
{
//獲取的模塊
$_GET['m']=isset($_GET['m'])?$_GET['m']:'Index';

//獲取行為動作action又叫方法
$_GET['a']=isset($_GET['a'])?$_GET['a']:'index';

$controller='Controller\'.$_GET['m'].'Controller';
//echo$controller;
$c=new$controller();

//$c->$_GET['a']();
call_user_func(array($c,$_GET['a']));
}

最終可實現以下形式:

⑦ PHP怎麼調用其他類的方法

在Java的調用方法是import,而在PHP中沒有import這個函數,一般PHP中調用其他類是用到require(),具體PHP調用其他類的方法如下:

1、首先應該先有一個文件名為tool.php的文件,在文件中聲明一個類。

(7)php鏈式調用擴展閱讀:

類是變數與作用於這些變數的函數的集合。使用下面的語法定義一個類:

<?php

class Cart { var $items; // 購物車中的物品

// 將 $num 個 $artnr 物品加入購物車

function add_item($artnr, $num) {

$this->items[$artnr] += $num;

} // 將 $num 個 $artnr 物品從購物車中取出

function remove_item($artnr, $num) {

if ($this->items[$artnr] > $num) {

$this->items[$artnr] -= $num; return true;

} elseif

($this->items[$artnr] == $num) {

unset($this->items[$artnr]); return true;

} else {

return false; }

}

} ?>

上面的例子定義了一個 Cart 類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。

⑧ PHP類繼承的問題,子類繼承父類,實例化子類,先執行父類還是先執行子類

不是這個意思。所謂「實例化子類的對象前要先實例化父類中的內容,為父類初始化」,是指當子類正在實例化時,總是鏈式調用父類構造方法初始化父類空間。換句話說,子類的構造方法必須先調用父類的構造方法,完了才能幹別的初始化工作。如果子類沒有顯式調用語句,編譯器會隱式幫你加上。
如:
public class A{ public A() { }}public class B extends A{ public B() { }}等價於:
public class A{ public A() { super();//這里實際上是Object(); //其他初始化工作 }}public class B extends A{ public B() { super();//這里實際上是A(); //其他初始化工作 }}另外,如果有這種情況:
public class A{ X x=new X(); public A() { }}public class B extends A{ Y y=new Y(); public B() {//這是類A空間里的欄位都已經初始化完畢。 }}在成員y被賦值之前,x一定已經存在。換句話說,X x=new X();一定先於Y y=new Y();執行。

⑨ php類中,方法中的return this指的是什麼

返回整個類對象,方便調用的元素對對象進行調用。

閱讀全文

與php鏈式調用相關的資料

熱點內容
rf3148編程器 瀏覽:505
浙江標准網路伺服器機櫃雲主機 瀏覽:587
設置網路的伺服器地址 瀏覽:600
java圖形界面設計 瀏覽:751
純前端項目怎麼部署到伺服器 瀏覽:538
瓜子臉程序員 瀏覽:505
如何保證伺服器優質 瀏覽:94
小微信aPP怎麼一下找不到了 瀏覽:299
演算法纂要學術價值 瀏覽:975
程序員你好是什麼意思 瀏覽:801
倩女幽魂老伺服器如何玩 瀏覽:561
電子鍾單片機課程設計實驗報告 瀏覽:999
看加密頻道 瀏覽:381
程序員算不算流水線工人 瀏覽:632
三星電視我的app怎麼卸載 瀏覽:44
簡述vi編譯器的基本操作 瀏覽:507
讓程序員選小號 瀏覽:91
加強數字貨幣國際信息編譯能力 瀏覽:584
購買的app會員怎麼退安卓手機 瀏覽:891
程序員的種類及名稱 瀏覽:295