php入門教程(二)后端編程語言的特征

歷史謎案

你有沒有想過,php和js——除了一個運行在前端,一個在后端,還有什么?

來看一個例子:

var b = 1;
function fun(){
    b = 2;
}
fun();
console.log(b);

會打印出來什么?不用想了肯定是2。
但是問題就來了,怎么是2???你用了這么多年js你難道沒有發(fā)現(xiàn)這個問題嗎。
你為什么能在函數(shù)體內(nèi)去修改,全局中變量的值??

看下php

$v = 1;
function getV(){
    $v = 10;
}
getV();
print($v)

這里打印出來1。

證明了一件事:js中變量是沒有塊作用域的。塊作用于就是{}括號里面的東西,沒有塊作用域,變量跟全局的就沒什么區(qū)別。能明白嗎,整個js,無論在什么地方,你都有可能會修改到全局,污染全局的數(shù)據(jù)。這可不是鬧著玩的。

php是較為嚴謹?shù)木幊陶Z言,所以,不存在這種情況。
我們太需要對變量進行規(guī)范了。
雖然es6中誕生了const和let,但是說實話,這還遠遠不夠。。

php非常依賴方法


ok,我們知道了在php中,變量存在作用域。
那么他的聲明變量或者數(shù)組的寫法有什么區(qū)別呢?

php無論是聲明產(chǎn)量還是創(chuàng)建數(shù)組,都是通過方法完成的,它不像js那么隨意,一個var arr=[] 就能創(chuàng)建數(shù)組,它創(chuàng)建數(shù)組要通過$arr = array()完成

$array = array("java","php","nodejs");
print_r($array);
echo "<br/>";
echo $array[0];
echo "<br/>";
$array2 = array("key1"=>"java","key2"=>"php");
echo $array2["key1"];

我知道這些有什么用?


你可以發(fā)現(xiàn),從第一章到第二章,全他媽是在講理論的東西。無非你就是想告訴我,js和php寫法不一樣,運行的地方不一樣。有什么用?

我還是一樣不會寫接口!

別急,咱們慢慢來,先來了解一些基礎的知識,由淺入深。如果你不了解這些區(qū)別的話,后面的東西我保證你會看懵,你一旦懵了心態(tài)就炸了,就不想學了,這就跟你為什么不會數(shù)學和英語是一個道理。

就跟你去看病,大夫說了一堆你聽不懂的,但是最后告訴你需要打針輸液的時候是一個道理。
你不知道為什么病的,下次你還會病。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 繼承 一、混入式繼承 二、原型繼承 利用原型中的成員可以被和其相關的對象共享這一特性,可以實現(xiàn)繼承,這種實現(xiàn)繼承的...
    magic_pill閱讀 1,128評論 0 3
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,851評論 0 3
  • 第一章 前端三大語言:HTML(專門編寫網(wǎng)頁內(nèi)容)、CSS(編寫網(wǎng)頁樣式)、JS(專門編寫網(wǎng)頁交互行為) 能簡寫盡...
    fastwe閱讀 1,199評論 0 0
  • 第一章 錯誤處理: 錯誤: 程序運行過程中,導致程序無法正常執(zhí)行的現(xiàn)象(即bug) 現(xiàn)象: 程序一旦出錯,默認會報...
    fastwe閱讀 1,252評論 0 1
  • https://leetcode.com/problems/binary-tree-paths/ (來源:http...
    7ccc099f4608閱讀 124評論 0 0

友情鏈接更多精彩內(nèi)容