韩林涛老师:译者编程知识30天×300字写作计划 | Day 13

学生发来一个网页,说看不懂。

我问哪儿看不懂,TA说第一句话就看不懂:“当我们需要判断一个变量是否已声明但值为空的时候......”

我发现原来TA不知道什么叫“声明”。

我们以前讲过,变量是个容器,里面可以放东西。但这个容器哪儿来的,为什么可以放东西呢?

咱们举个直观的例子:

你家需要一个箱子来装书,但你现在手里没有箱子,所以你只能先打开京东下单一个箱子,但这个时候你依然没有箱子,需要等到箱子到了之后你才能把书放进去存着。

上面这个过程中,下单买箱子的过程叫“声明”,箱子到了之后才叫“定义”。当你付了钱买箱子后,实际上只是给家里人声明:那个啥,我买了个装书的箱子哈。此时你家并没有容箱之地。

只有箱子到了,书放进去了,我们才会给它安排一个确定的存放地址。

对应到计算机里,当我们声明一个变量时,计算机并没有为其分配内存,只有到定义了变量的内容后才会分配。

这位同学就是没有搞清楚什么叫声明才会糊涂:

判断一个变量是否已声明但值为空,就是去判断我们是不是在代码说写了一个变量,但里面其实是空的。

比如你希望程序把你的名字显示在浏览器中:

echo $name;

那这个name变量是不是空的呢?

我们用empty函数来试一下就可以了。

TA发给我的帖子就是在解释什么是所谓的empty。

这个同学的问题非常有普遍性,因为困扰TA的实际上是一个TA习以为常的术语,而TA又没有发现这个术语的本意,于是就按照自己的理解去解读,却怎么也搞不懂。

这种知识点需要拿出来问,自己琢磨半天也徒劳。

作者:韩林涛,北京语言大学高级翻译学院教师,《译者编程入门指南》作者