PHP:class const
const变量经常被当做常量用在php的类中,隐含的意思是这个变量是常量,不能被修改。编译器会自动检测,如果被赋值会被提示错误警告。
正确实例1:
<?php
class test
{
const ERRNO = 100;
}
echo test::ERRNO."\n";
输出:
100
错误示范1:const常量被赋值,编译器提示错误
<?php
class test
{
const ERRNO = 100;
}
test::ERRNO = 10;
echo test::ERRNO."\n";
输出:
PHP Parse error: syntax error, unexpected '='
错误示范2:const常量被当做变量来定义
<?php
class test
{
const $ERRNO = 100;
}
输出:
PHP Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING
错误示范3:const常量被赋值为数组型
<?php
class test
{
const ERRNO = array(100);
}
输出:
PHP Fatal error: Arrays are not allowed in class constants
至于为什么const常量不能被定义为array数组型?
php官方文档给出的解释是,尽管这有可能实现,但会产生一些未知的风险和结果,所以不推荐。支持的类型为标量类型(scalar data:(boolean, integer, float and string))
更多细节参考:http://www.php.net/manual/en/language.constants.syntax.php
PHP:class const的更多相关文章
- type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。 作者:高
MySQL EXPLAIN详解 - 简书 https://www.jianshu.com/p/ea3fc71fdc45 type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: syst ...
- OJ:访问 const 成员函数问题
Description 补足程序使得其输出结果是: 40 #include <iostream> #include <string> using namespace std; ...
- 转:总结const、readonly、static三者的区别
const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享! a.叫编译时常量的原因是它编译时会将其替换为所对应的值: b.静态 ...
- C++解析(9):关于const和引用的疑问
0.目录 1.关于const的疑问 2.关于引用的疑问 2.1 引用与指针 2.2 从C++语言与C++编译器角度看引用 2.3 从工程项目开发看引用 3.小结 1.关于const的疑问 const什 ...
- 摘:static,const,inline,define的意义
static 1) 产生背景 引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想 ...
- C++学习之路(七):以const,enum,inline替换#define
这篇博文主要是编程中的一些问题和技巧.如题目所示,这些关键字的作用不再进行描述.直接描述功能和实例代码. 首先,在头文件中对类进行定义,是不会为类分配内存空间的,在这一点上类定义可以和普通变量类型的声 ...
- [ES6深度解析]13:let const
当Brendan Eich在1995年设计了JavaScript的第一个版本时,他犯了很多错误,包括从那时起就成为该语言一部分的一些错误,比如Date对象和当你不小心将它们相乘时对象会自动转换为NaN ...
- PHP常量详解:define和const的区别
常量是一个简单值的标识符(名字).如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的魔术常量,它们其实不是常量).常量默认为大小写敏感.通常常量标识符总是大写的. 可以用 define() 函 ...
- Effective C++阅读笔记_条款2:尽量以const,enum,inline替换#define
1.#define缺点1 #define NUM 1.2 记号NUM可能没有进入记号表,在调试或者错误信息中,无法知道1.2的含义. 改善:通过const int NUM = 1.2; 2.#dein ...
随机推荐
- 进程管理利器supervisor
supervisor安装 方法一 1:用管理员安装python-setuptools suse zypper in python-setuptools centos yum install pytho ...
- Struts2 stracture
- Linux服务器导入导出SVN项目
导出项目: # svnadmin dump /var/svn/pro1 > /mydata/pro1.backup 导入项目: 新建项目仓库: # svnadmin create /var/sv ...
- CENTOS7小注意
由于第一次使用 Linux CENTOS ,所以安装了图形界面,但是在终端执行yum 安装的时候,总是提示 Existing lock /var/run/yum.pid: another copy i ...
- 第七十六节,css颜色和透明度,盒子阴影和轮廓,光标样式
css颜色和透明度,盒子阴影和轮廓,光标样式 学习要点: 1.颜色和透明度 2.盒子阴影和轮廓 3.光标样式 一.颜色和透明度 颜色我们之前其实已经用的很多了,比如字体颜色.背景颜色.边框颜色.但除了 ...
- gitc2016——打造互联网技术狂欢盛宴
gitc2016全球互联网技术大会由麒麟会主办,iTech Club(互联网技术精英俱乐部)协办.网堤安全将作为云安全服务提供商应邀出席本届大会,gitc2016会有怎样的精彩内容?我们一起来一探究竟 ...
- grunt学习随笔
1 grunt 安装 全局安装 npm install -g grunt-cli 2 配置好package.json 和 Gruntfile 文件,这两个文件必须位于项目根目录下. 2.1packa ...
- putty 窗口管理
(一个用户,可以有多个小窗口) screen -S xxx 保存用户名(用户丢失后新保存) screen -ls 查询现有的screen screen -r zxc 恢复 ctrl+a+c 新增小 ...
- 8、Spring+Struts2+MyBaits(Spring注解+jdbc属性文件+log4j属性文件)
一.注解理论 使用注解来构造IoC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base- ...
- 4、Spring+MyBatis增删改查
0.oracle数据库脚本 create table userinfo (id ), name ), password telephone ), isadmin )); --4.2 用户表序列 cre ...