边记边学PHP-(四)PHP数据类型、常量、变量及表达式2
来源:互联网 发布:js调用手机图库 编辑:程序博客网 时间:2024/04/28 05:23
在上一篇我说过这篇有福利,其实福利就是一份PHP手册。很重要,以后经常用到。
PHP手册提取码:5rbn
好了废话不多说,这次就把表达式都看完了。
1.PHP常量
常量在其他语言里也会出现,因为有时候常量会给我们写代码带来很大的方便。在PHP里面,有两种常量,一种是我们自己定义的常量,一种是预定义的也就是它里面定义好了的,这一种又称为魔术常量。
(1)声明和定义常量
在PHP里面,常量的定义是通过一个函数实现的,
bool define ( string$name , mixed $value [, bool $case_insensitive =false ] )
它里面有三个参数:
$name:表示你定义的常量的名称
$value:表示你定义的常量的值
$case_insensitive:表示你定义的这个常量对大小写是否敏感。TRUE表示不敏感,false表示敏感。默认为false。
除了这个函数,还有两个函数需要知道。
mixed constant( string $name )
这个函数返回常量的值。如果常量未定义则返回null,并且会出现错误。
bool defined( string $name )
这个函数是测试常量是不是定义了。如果定义了返回TRUE,反之返回false。说到这里,如果测试一个变量是否定义了,使用的函数是isset().原理是一样的。
下面我通过一个例子来说明这几个函数,这个例子是参考了一本书上的。Eg:
<?php define("MESSAGE", "PHP常量定义"); echoMESSAGE."<br>"; //<br>表示换行,以后会说到 echoMessage."<br>"; //当输出这一句是给了一个警告,说没有定义这个常量,按字符串输出来了。因为默认区分大小 define("COUNT","这里不区分大小写",true);//这里设置不区分大小写 echoCOUNT."<br>"; echoCount."<br>"; $name = "count"; echoconstant($name)."<br>"; if(defined($name)){ echo $name."定义了"; }?>
通过上面一个例子,大概就能明白了各个函数的含义。
(2)预定义常量(魔术常量)
我这里从PHP手册里截了一张图,你也可以去里面详细的看一下。以后会用到。当然这不是全的。具体用的时候可以去手册里找。注意:它两遍的线是两条_不是一条。你可以自己输出一下这几个常量,你就知道它代表的是什么意思了。
2.PHP变量
变量有四点
(1)声明及使用
几条规则:
①变量名区分大小写
②变量以美元符号$开头
③变量名可以用英文字母、下划线开头,但不能以数字开头
④变量名里不能包含中文
在这分享几点好的编程习惯,我也一直在这么写。当声明变量的时候尽量用英文单词或者单词的缩写,这样能够一眼看出变量的意思,不要使用汉语拼音。有两种方式比较不错,一个是带下划线的,如我声明一个用户名的变量,可以这么写$user_id=…或者$userId=…。也就是用下划线把两个单词分开或者每个单词的首字母大写,当然变量的首字母可以小写。再就是声明变量的同时最好先给他赋一个值,这样程序就能马上知道这是个什么类型的变量了。
变量除了可以马上赋值之外,他们相互之间也可赋值,主要有两种方式,一种是直接赋值,一种是引用赋值。直接赋值就是类似$str2 = $str1;这样$str2里面存储的就是$str1里的内容了,但是他们两个是两个变量,改变任意一个互不影响,也就是各有各的存储空间。还有一种是引用赋值,使用取地址符&。相信你在别的语言也用过,比如:$str2 = &$str1。这样输出$str2就输出了1的值,但是他不是单独的空间存储,而是像是指针指向了1的空间,当改变1时,2的值也会改变。
(2)可变变量
我一直觉得PHP很神奇,它可以用变量的值做变量的名,也就是这样:
$str ="php";
$php = "Ilove PHP";
echo $str; //这里输出php
echo"<br>";
echo $$str; //这里输出 I love PHP
这就叫可变变量。
(3)变量作用域
看到这个作用域,你大概也明白这是什么意思了,就是变量能够作用或者说能够使用的区间。这里我用一个表格来说明:
全局变量
声明在所有函数之外的变量成为全局变量,作用域是整个PHP文件,但是在自定义的函数之内是不能使用的(会出现undefined的错误),如果想在函数里使用,需要使用global关键字,或者使用全局数组进行访问。
局部变量
在自定义的函数内部声明的变量,只能在这个函数中使用
静态变量
使用关键字static声明的变量,这种变量的特点是当程序执行完毕之后仍然保存。不会释放空间。
我通过下面的代码说明:
$str ="php"; //这是一个全局变量
function test(){
$php = "I love PHP"; //这是一个局部变量
global $str;
echo $str;
}
test();
静态变量这样声明:static $str= “”;
(4)预定义变量
常量有预定义,变量也有???
是的,并且非常非常重要!!!
但是这里我就不一一说了,我也记不住,但是有几个经常用到,$_GET、$_POST、$_COOKIE、$_SESSION、$_FILES、$_REQUEST。他们都是大写,并且变量名以下划线开头。
这几个你可以去看php手册,一定要知道。以后经常用他们进行页面见的交互什么的。
3.表达式
说到表达式当然要了解PHP运算符
(1)PHP运算符
①算术运算符
+-*/%
加减乘除取模与其他语言一样的。
②字符串连接运算符
.
就是一个点,而不是一个加号。如果使用加号那么系统就吧字符串自动转换成整型相加了。
③赋值运算符
=、+=、-=、*=、/=、.=、%=
跟其他语言一样理解。
④递增递减运算符
++,--
与其他语言一样,并且也分前置后置
⑤位运算符(我一般不用,就不说了)
⑥逻辑运算符(用于判断条件)
&&或and(两两为真才真)、||或or(一真即真)、!(取非也就是类似取反)
跟其他语言一样。依次且或非的意思
⑦比较运算符
>、<、=、>=、<=、==、!=、===(恒等)、!==(非恒等)
其他的跟其他语言一样
⑧条件运算符
(1)?(2):(3)
先判断1是不是真,如果是真,就返回2,如果不是真就返回3。
运算符的优先级我从手册上截了一张图
可以看手册。
(2)表达式
表达是就是通过上面的运算符将PHP变量来连接起来了。我就不详细说了,如果你学过其他语言,就应该很明白了。
本次我用了一个PHP文件进行的分析,完整代码如下(不需要什么就注释掉什么):
<?php// define("MESSAGE", "PHP常量定义");// echo MESSAGE."<br>";// echo Message."<br>";// define("COUNT", "这里不区分大小写",true);// echo COUNT."<br>";// echo Count."<br>";// $name = "count";// echo constant($name)."<br>";// if(defined($name)){// echo $name."定义了";// } $str = "php"; $php = "I love PHP";// echo $str;// echo "<br>";// echo $$str; function test(){ global $str; echo $str; } test();?>
至此,我已经说完了几乎php的理论,下一篇需要说流程控制语句,那个就一点知识。然后就正式进入编程。那么还需要有一点HTML的基础,来去写界面。所以我在之前还会插入一点HTML的基础知识。
上面如果有不准确的地方或者更好的理解方法,请告诉我啊。如果有说的不明白的也可以告诉我。
- 边记边学PHP-(四)PHP数据类型、常量、变量及表达式2
- 边记边学PHP-(三)PHP数据类型、常量、变量及表达式1
- php 常量及数据类型
- PHP 变量及常量
- PHP的常量及变量
- php(2)——常量、变量和数据类型
- PHP变量常量数据类型简单罗列
- PHP的数据类型,变量和常量
- PHP中的变量&常量以及数据类型
- php 语法 常量 变量 数据类型详解
- php常量,预定义常量,魔术常量及基本数据类型
- PHP学习笔记(二):变量、常量、表达式
- PHP——数据类型及常量
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--常量
- php开发笔记(四)php数据类型及转换
- PHP语法基础:数据类型、常量与变量的声明及区别
- php常量及变量定义方法
- PHP常量、数据类型
- matlab中 卷积码 及Viterbi解码内容
- 浅析Linux线程的创建
- ant教程(三) ant入门
- small python
- leetcode 题目标记(补充版)
- 边记边学PHP-(四)PHP数据类型、常量、变量及表达式2
- Command设计模式
- MySQL触发器示例
- SIP测试工具
- 如何用Mac完美编译OpenJDK 7
- Android 打开pdf文档,没有阅读器链接到Google Play Store等下载
- ubuntu12.04 + ROS(Hydro)使用RVIZ出错
- DIV CSS技术学习难吗?
- Sicily 1157 the hardest problem