学生发来一个网页,说看不懂。
我问哪儿看不懂,TA说第一句话就看不懂:“当我们需要判断一个变量是否已声明但值为空的时候......”
我发现原来TA不知道什么叫“声明”。
我们以前讲过,变量是个容器,里面可以放东西。但这个容器哪儿来的,为什么可以放东西呢?
咱们举个直观的例子:
你家需要一个箱子来装书,但你现在手里没有箱子,所以你只能先打开京东下单一个箱子,但这个时候你依然没有箱子,需要等到箱子到了之后你才能把书放进去存着。
上面这个过程中,下单买箱子的过程叫“声明”,箱子到了之后才叫“定义”。当你付了钱买箱子后,实际上只是给家里人声明:那个啥,我买了个装书的箱子哈。此时你家并没有容箱之地。
只有箱子到了,书放进去了,我们才会给它安排一个确定的存放地址。
对应到计算机里,当我们声明一个变量时,计算机并没有为其分配内存,只有到定义了变量的内容后才会分配。
这位同学就是没有搞清楚什么叫声明才会糊涂:
判断一个变量是否已声明但值为空,就是去判断我们是不是在代码说写了一个变量,但里面其实是空的。
比如你希望程序把你的名字显示在浏览器中:
echo $name;
那这个name变量是不是空的呢?
我们用empty函数来试一下就可以了。
TA发给我的帖子就是在解释什么是所谓的empty。
这个同学的问题非常有普遍性,因为困扰TA的实际上是一个TA习以为常的术语,而TA又没有发现这个术语的本意,于是就按照自己的理解去解读,却怎么也搞不懂。
这种知识点需要拿出来问,自己琢磨半天也徒劳。
作者:韩林涛,北京语言大学高级翻译学院教师,《译者编程入门指南》作者