今天在整理面试题的时候遇到一道题:
PHP定义变量正确的是:
A: var a = 5;
B: $a = 10;
C: int b = 6;
D: var $a = 12;
从上题中看出我们主要分析的是var的用法,很多朋友说在php中定义变量用不用var都没关系,其实不是的。(正确答案是B)
看下下面的例子例子,再来详细说下var关键字的细节:
1 var $a=123;
2 echo $a;
3 //那么程序会提示语法错误,要去掉var这个变量定义才行。改成下面:
4 $a=123;
5 echo $a;
6 //这样才不会报错,这是由于php是弱类型语言,所以不声明类型是没问题的。
那var关键字什么时候才能用?再看下面的例子:
```php
1 class Test{
2 var $a=123;
//访问控制,这里的var不用就不正常,当然你可以用public protected private等关键词代替,来声明成员变量的属性
4 }
5 $obj=new Test();
6 echo $obj->a;
7 //打印结果:123
如果把var换成public,一样可以的。但是这个时候你在类中去掉var,什么访问修饰符都没有,就会提示语法错误。
本人认为var就是public的别名,是用在类中定义公有属性的,只不过历史问题,现在不用var了。后来查了查php官网:https://www.php.net/manual/zh/language.oop5.visibility.php
果然如此。
php官方的解释:
本人近期在整理PHP的面试题/测试题,有兴趣的可以jia-v分享:RG-814926137