php中的var关键字的用法总结(var在类外用报错)(类属性必须带限定词)
php中的var关键字的用法总结(var在类外用报错)(类属性必须带限定词)
一、总结
1、var在类外用报错:如果不是在类中,用var定义变量是错的。
2、类属性必须带限定词:php中类属性必须定义为公有,受保护,私有之一。所以如果没有那三个修饰符,必须用var,var是public的别名。
二、php中的var关键字的用法
见很多朋友说在php中定义变量用不用var都没关系,其实不然。
看看例子,如果我这样使用var:
1 var $a=123;
2 echo $a;
3 //那么程序会提示语法错误,要去掉var这个变量定义才行。直接
4 $a=123;
5 echo $a;
6 //这样才不会报错,php是弱类型语言,所以不声明类型是没问题的。
那var什么时候才能用,请看:
1 class Test{
2 var $a=123;//访问控制,这里的var不用就不正常,当然你可以用public protected等关键词代替,来声明成员变量的属性
3
4 }
5 $obj=new Test();
6 echo $obj->a;
7 //打印结果:123
如果把var换成public,一样可以的。
但是这个时候你在类中去掉var,什么访问修饰符都没有,那会提示语法错误的。
其实我经过测试,认为var就是public的别名,是用在类中定义公有属性的,只不过历史问题,现在不用var了。后来查了查php官网,果然如此。
php官方的解释:
类属性必须定义为公有,受保护,私有之一。如果用 var 定义,则被视为公有。
Note: 为了兼容性考虑,在 PHP 4 中使用 var 关键字对变量进行定义的方法在 PHP 5 中仍然有效(只是作为 public 关键字的一个别名)。在 PHP 5.1.3 之前的版本,该语法会产生一个 E_STRICT 警告
php中的var关键字的用法总结(var在类外用报错)(类属性必须带限定词)的更多相关文章
- java中的final关键字的用法
一. 什么是final关键字? final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变 ...
- C++中的explicit关键字的用法
一.explicit作用: 在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换. 二.explicit使用注意事项: ...
- Java中的static关键字的用法
1.静态方法 static:通常在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: (1)它们仅能调用其他的static方法. (2 ...
- C++中的const关键字的用法
1.const用于修饰普通变量,表示常量,不建议修改,某种程度上不允许修改(其实也是可以修改的) 指针常量 :指针(指向的变量的值)自身是一个常量,说明不能改变自身的指向 int* const p= ...
- C++中的const关键字
http://blog.csdn.net/eric_jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方 ...
- C#中var关键字用法分析
原文连接 本文实例分析了C#中var关键字用法.分享给大家供大家参考.具体方法如下: C#关键字是伴随着.NET 3.5以后,伴随着匿名函数.LINQ而来, 由编译器帮我们推断具体的类型.总体来说,当 ...
- c#中var关键字用法
Technorati 标签: C# 转载自csdn:http://blog.csdn.net/robingaoxb/article/details/6175533 var关键字是C# 3.0开始新 ...
- php中var关键字用法
见很多朋友说在php中定义变量用不用var都没关系,其实不然. 看看例子,如果我这样使用var: 1 var $a=123; 2 echo $a; 3 //那么程序会提示语法错误,要去掉var这个变量 ...
- java 10 中 var关键字用法
引用:https://mp.weixin.qq.com/s/n1tcJ0CywSi0j-YycGPwxg what java10引入了局部变量折断 var用于声明局部变量. 如var user=new ...
随机推荐
- 项目列表dl、dt、dd使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 用Fiddle跟踪调试移动表单
简介:Fiddle,调试,移动表单 http://jingyan.baidu.com/article/925f8cb81e3a52c0dde05616.html
- Day5上午解题报告
预计分数:100+40+30=170 实际假分数:0+0+0=0 CE*3 实际真分数:60+50+0=110 老师没把我的程序放的文件夹里面,于是..... T1 https://www.luogu ...
- Office GVLK 密钥对照表(kms激活专用)
Office2016系列: Office Professional Plus 2016:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99 Office Standard 2016:JNRGM ...
- Mybaits中session的应用一
获取一级缓存session SqlSession session = this.yangchebaoDbManagerImpl.getSqlSessionFactory().openSession(f ...
- 7,NULL与nullptr对比
#include <iostream> #include <array> using namespace std; void show(int num) { cout < ...
- Android SocketService
package com.freer.infusion.module.service; import android.app.ActivityManager; import android.app.Pe ...
- amazeui学习笔记--css(常用组件5)--评论列表Comment
amazeui学习笔记--css(常用组件5)--评论列表Comment 一.总结 1.am-comment:使用am-comment来声明评论对象,这个是放在article里面的,虽然article ...
- 宏的使用 extern
声明全局变量使用的技术. 有些时候C语言的一些条条框框就像语法.学会C语言就是学会了语法. 但是语法怎样使用就又是另一回事了. 我希望自己能多学习一些技巧,而不是一些固定的C语言语法. 这篇文章真的很 ...
- Maven学习总结(16)——深入理解maven生命周期和插件
在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b ...