PHP中單雙號(hào)與變量
例子
<?php $string = "beautiful"; $time = "winter"; $str = 'This is a $string $time morning!'; echo $str. "<br />"; eval("\$str = \"$str\";"); echo $str; ?>
輸出:
This is a $string $time morning!
This is a beautiful winter morning!
分析:
php里,
單引號(hào)內(nèi)的變量不會(huì)被執(zhí)行,
雙引號(hào)內(nèi)的變量會(huì)被執(zhí)行,
雙引號(hào)內(nèi)單引號(hào)里面的變量會(huì)被執(zhí)行,
但是雙引號(hào)內(nèi)變量加上反斜杠就可以讓這個(gè)變量不被執(zhí)行,成為特例,比如:
<?php $a=5; echo '$a'."\n"; // 結(jié)果輸出 $a echo "$a\n"; // 結(jié)果輸出 5 echo "'$a'\n"; // 結(jié)果輸出 '5' echo "\$a=".$a; // 結(jié)果輸出 $a=5 ,點(diǎn)是連接符 ?> eval("\$str = \"$str\";");
一開(kāi)始的 \$str 就是這個(gè)意思, 前面相當(dāng)于 $str= ,就是給 $str 這個(gè)變量賦值;
后面的兩個(gè)反斜杠加引號(hào)就是轉(zhuǎn)義,就表示引號(hào),所以后面的是 "$str" ,這個(gè)$str 會(huì)被執(zhí)行,就是 " 'This is a $string with my $name in it.' "
這里又涉及一個(gè)雙引號(hào)嵌套單引號(hào)的問(wèn)題,比如sql語(yǔ)句
$sql = "select * from user where id = '$id' ";
這里就有雙引號(hào)嵌套單引號(hào),這里面的變量 $id 是會(huì)被執(zhí)行的~
也就是說(shuō)雙引號(hào)嵌套單引號(hào)那么單引號(hào)里的變量也會(huì)被執(zhí)行,,
或者可以簡(jiǎn)單地總結(jié):雙引號(hào)內(nèi)的變量如果沒(méi)有前面加反斜杠的特例,則都是要執(zhí)行的;
這個(gè)eval雙引號(hào)內(nèi)的將要被執(zhí)行的代碼就是 $str=" 'This is a $string with my $name in it.' "
補(bǔ)充:
PHP 是一門類型松散的語(yǔ)言
在上面的例子中,請(qǐng)注意我們不必告知 PHP 變量的數(shù)據(jù)類型。
PHP 根據(jù)它的值,自動(dòng)把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型。
在諸如 C 和 C++ 以及 Java 之類的語(yǔ)言中,程序員必須在使用變量之前聲明它的名稱和類型。
PHP 變量作用域
在 PHP 中,可以在腳本的任意位置對(duì)變量進(jìn)行聲明。
變量的作用域指的是變量能夠被引用/使用的那部分腳本。
PHP 有三種不同的變量作用域:
local(局部)
global(全局)
static(靜態(tài))
Local 和 Global 作用域
函數(shù)之外聲明的變量擁有 Global 作用域,只能在函數(shù)以外進(jìn)行訪問(wèn)。
函數(shù)內(nèi)部聲明的變量擁有 LOCAL 作用域,只能在函數(shù)內(nèi)部進(jìn)行訪問(wèn)。
下面的例子測(cè)試了帶有局部和全局作用域的變量:
實(shí)例
<?php $x=5; // 全局作用域 function myTest() { $y=10; // 局部作用域 echo "<p>測(cè)試函數(shù)內(nèi)部的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; }
myTest();
echo "<p>測(cè)試函數(shù)之外的變量:</p>"; echo "變量 x 是:$x"; echo "<br>"; echo "變量 y 是:$y"; ?>
在上例中,有兩個(gè)變量 $x 和 $y,以及一個(gè)函數(shù) myTest()。$x 是全局變量,因?yàn)樗窃诤瘮?shù)之外聲明的,而 $y 是局部變量,因?yàn)樗窃诤瘮?shù)內(nèi)聲明的。
如果我們?cè)?myTest() 函數(shù)內(nèi)部輸出兩個(gè)變量的值,$y 會(huì)輸出在本地聲明的值,但是無(wú)法 $x 的值,因?yàn)樗诤瘮?shù)之外創(chuàng)建。
然后,如果在 myTest() 函數(shù)之外輸出兩個(gè)變量的值,那么會(huì)輸出 $x 的值,但是不會(huì)輸出 $y 的值,因?yàn)樗蔷植孔兞?,并且?myTest() 內(nèi)部創(chuàng)建。
注釋:您可以在不同的函數(shù)中創(chuàng)建名稱相同的局部變量,因?yàn)榫植孔兞恐荒鼙辉谄渲袆?chuàng)建它的函數(shù)識(shí)別。
總結(jié)
以上所述是小編給大家介紹的PHP中單雙號(hào)與變量,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
PHP批量刪除、清除UTF-8文件BOM頭的代碼實(shí)例
這篇文章主要介紹了PHP批量刪除、清除UTF-8文件BOM頭的代碼實(shí)例,需要的朋友可以參考下2014-04-04thinkphp5.0整合phpsocketio完整攻略(繞坑)
這篇文章主要介紹了thinkphp5.0整合phpsocketio完整攻略(繞坑),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10php實(shí)現(xiàn)cc攻擊防御和防止快速刷新頁(yè)面示例
這篇文章主要介紹了php實(shí)現(xiàn)cc攻擊防御的方法和防止快速刷新頁(yè)面示例,需要的朋友可以參考下2014-02-02thinkPHP5.0框架整體架構(gòu)總覽【應(yīng)用,模塊,MVC,驅(qū)動(dòng),行為,命名空間等】
這篇文章主要介紹了thinkPHP5.0框架整體架構(gòu),簡(jiǎn)單介紹了thinkPHP5.0的應(yīng)用,模塊,MVC,驅(qū)動(dòng),行為,命名空間等概念與基本用法,需要的朋友可以參考下2017-03-03thinkPHP商城公告功能開(kāi)發(fā)問(wèn)題分析
這篇文章主要介紹了thinkPHP商城公告功能開(kāi)發(fā)問(wèn)題,結(jié)合實(shí)例形式分析了基于thinkPHP實(shí)現(xiàn)商城公告功能所涉及的ajax交互及數(shù)據(jù)庫(kù)操作相關(guān)技巧,需要的朋友可以參考下2016-12-12國(guó)產(chǎn)PHP開(kāi)發(fā)框架myqee新手快速入門教程
這篇文章主要介紹了國(guó)產(chǎn)PHP開(kāi)發(fā)框架myqee新手快速入門教程,myqee中文名稱邁啟PHP框架,有比較多的高級(jí)開(kāi)發(fā)特性,需要的朋友可以參考下2014-07-07ThinkPHP控制器間實(shí)現(xiàn)相互調(diào)用的方法
這篇文章主要介紹了ThinkPHP控制器間實(shí)現(xiàn)相互調(diào)用的方法,主要通過(guò)A()方法實(shí)現(xiàn)這一功能,可以有效的提高代碼的重復(fù)利用率,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10phpstudy本地環(huán)境搭建超詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于phpstudy本地環(huán)境搭建超詳細(xì)圖文教程的相關(guān)資料,phpStudy是集安全、高效、功能于一體且完全免費(fèi)的一鍵服務(wù)器環(huán)境搭建軟件,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07