php入门教程(二)后端编程语言的特征
2019-09-30 本文已影响0人
党云龙
历史谜案
你有没有想过,php和js——除了一个运行在前端,一个在后端,还有什么?
来看一个例子:
var b = 1;
function fun(){
b = 2;
}
fun();
console.log(b);
会打印出来什么?不用想了肯定是2。
但是问题就来了,怎么是2???你用了这么多年js你难道没有发现这个问题吗。
你为什么能在函数体内去修改,全局中变量的值??
看下php
$v = 1;
function getV(){
$v = 10;
}
getV();
print($v)
这里打印出来1。
证明了一件事:js中变量是没有块作用域的。块作用于就是{}括号里面的东西,没有块作用域,变量跟全局的就没什么区别。能明白吗,整个js,无论在什么地方,你都有可能会修改到全局,污染全局的数据。这可不是闹着玩的。
php是较为严谨的编程语言,所以,不存在这种情况。
我们太需要对变量进行规范了。
虽然es6中诞生了const和let,但是说实话,这还远远不够。。
php非常依赖方法
ok,我们知道了在php中,变量存在作用域。
那么他的声明变量或者数组的写法有什么区别呢?
php无论是声明产量还是创建数组,都是通过方法完成的,它不像js那么随意,一个var arr=[] 就能创建数组,它创建数组要通过$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"];
我知道这些有什么用?
你可以发现,从第一章到第二章,全他妈是在讲理论的东西。无非你就是想告诉我,js和php写法不一样,运行的地方不一样。有什么用?
我还是一样不会写接口!
别急,咱们慢慢来,先来了解一些基础的知识,由浅入深。如果你不了解这些区别的话,后面的东西我保证你会看懵,你一旦懵了心态就炸了,就不想学了,这就跟你为什么不会数学和英语是一个道理。
就跟你去看病,大夫说了一堆你听不懂的,但是最后告诉你需要打针输液的时候是一个道理。
你不知道为什么病的,下次你还会病。