0

0

PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介_PHP

php中文网

php中文网

发布时间:2016-06-01 12:16:29

|

1004人浏览过

|

来源于php中文网

原创

主要主题是
.php字符串中的变量扩展系统
.php中可用的更多数据类型
.类型之间的转换
.输入和使用变量和常量
.如何在php中构建表达式以及构建表达式所需的操作符
.使用语言中可用的控制结构
.1 输入字符串的更多介绍

复制代码 代码如下:
$hour = 16;
$kilometres = 4;
$content = "cookie";
echo " 4pm in 24 hour time is {$hour}00 hours.
\n";
echo There are {$kilometres}000m in {$kilometres}km.

The jar is now, indeed, full of ${content}s.

DONE;
?>

输出: 4pm in 24 hour time is 1600 hours.
There are 4000m in 4km.
The jar is now, indeed, full of cookies.
如果你希望在输出中生成确切的字符序列{$,就需要使用,{\$对它进行转义。
.2 数据类型的更多介绍
1.数组:使用array方法来声明数组。它获得一组初始值并且返回保存所有这些值的数组对象,在默认情况下,把从0开始的整数名称或者键(key)赋给数组中的值
,也可以指定要添加的新项的索引。$frunit[120]="nespola";但是你也可以使用字符串值指定键,而不使用赋值给它的默认数字。
$myfavourite=array("car"=>"ferrari","number“=>21,"city"=>"ouagadougou");

数组运算符 例子 名称 结果
$a + $b 联合 $a 和 $b 的联合。
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE。
$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE。
$a $b 不等 如果 $a 不等于 $b 则为 TRUE。
$a !== $b

复制代码 代码如下:
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);
$c = $b + $a; // Union of $b and $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>

执行后,此脚本会显示:
Union of $a and $b: array(3) { ["a"]=> string(5) "apple" ["b"]=> string(6) "banana" ["c"]=> string(6) "cherry" } Union of $b and $a: array(3) { ["a"]=> string(4) "pear" ["b"]=> string(10) "strawberry" ["c"]=> string(6) "cherry" } 2.2.2对象 将在第四单元中面向对象的程序设计中使用。 2.2.3 特殊类型和值 NULL 是php中的特殊类型和值 ,它表示"无值".符合如下要求它就是null: .它们被设置为区分大小写的关键字null; .它们从没有赋值过 .使用unset方法明确清除了它们。 资源:有时候,php需要处理不一定来自php的对象,比如数据库或者操作系统对象的句柄。它们称为资源的特殊变量.
.3 强制类型转换
2.3.1 基础
隐式强制类型转换:当遇见隐式强制类型转换的最常见的情况是:
.二进制运算操作符
.布尔表达式和表达式操作符
.需要字符串的特定方法--特定方法和操作符,比如echo\print或者字符串连接符(.)
显示强制类型转换:为变量(或表达式)加上括号括起来的类型前缀,php会试图替你进行转换.
(int)\(interger)
(string)-转换为文本字符串
(object)-转换为对象
2.3.2 特殊强制类型转换
转换为整数
(int)4.999
注:null永远都转换为整数值0.
转换为浮点数
(float)true=1.0
把数组、对象或者资源转换为浮点值的结果是未定义的,不要试图进行这新的转换或者相信这样的转换结果
转换为字符串
可使用类型转换符(string)或调用strval把变量转换为字符串.
布尔型true转为字符串1,false被转换空字符串("")
null转为空字符串('").
转换为数组
可使用类型转换(array)或者函数arraryr把变量或者表达式转换为数组
null和其他未设置的变量被转换为有0个元素的空数组
转换为对象
你可以使用类型转换(object)把变量或者表达式转换为对象。
把对象转换为对象仅仅返回相同对象的句柄。为所有其他类型创建stdClass类型的对象。
2.3.3 有用的强制类型转换函数
is_type()
.is_integer,.is_float,.is_bool,is_null,.is_object.返回布尔型 ,指出特定变量是否属于适当的类型 。
gettype()是非常有用的例程,它告诉你php当前认为变量或者表达式是什么类型。不推荐使用这个转换函数。
settype()使用两个参数:要转换的变量和要转换为的类型 ,它表示字符串。
.4 变量和常量
2.4.1 定义常量
在php程序中,使用语言结构define定义常量,常量名子不以字符$开头,并且它们的值只能是特定类型:整数、浮点数、字符串和布尔型
2.4.2 按值 和按引用的变量
默认情况下,大多数变量和所有常量是按值赋值的。把一个变量的值赋给另一个变量是时,其值被复制。这种方式对于除对象外的所有类型适用
对于对象变量和资源,被复制的全部内容是底层对象或资源的句柄,但是操作的底层对象是相同的。
把变量的值赋值给另一个变量的另一种选择方式是按引用赋值。用&前缀完成的。
$a=123;
$b=&$a;
2.4.3 变量的范围
函数级别的变量,内部声明的变量只在这个函数内部是合法的。
在函数外声明的变量
超级全局变量
2.4.4 变量的生存期
不管执行相同脚本还是不同脚本,php都不会在调用之间记忆任何内容。
2.4.5 预定义变量
php提供很多预定义变量,它们给出操作环境的信息,大多是超级全局数组例如:
$GLOBALS-它包含正在执行的脚本内部全局可用的所有变量的引用
$_SERVER-脚本所在周边环境的信息
$_SESSION、$_COOKIE-它包含管理访问者和关于称为"cookie“的存储方式的信息
$_REQUEST-它包含$_post、$_GET和$_session数组
$_ENV-它包含php语言引擎所在的进程的环境变量.数组的键是环境变量的名称。
$php_errormsg-它保存php语言引擎在执行当前脚本时生成的最新的错误信息.
.5 表达式和操作符
2.5.1 操作符:组合表达式
赋值:
算术操作符
例子 名称 结果
-$a 取反 $a 的负值。
$a + $b 加法 $a 和 $b 的和。
$a - $b 减法 $a 和 $b 的差。
$a * $b 乘法 $a 和 $b 的积。
$a / $b 除法 $a 除以 $b 的商。
$a % $b 取模 $a 除以 $b 的余数。
比较操作符

例子 名称 结果
$a == $b 等于 TRUE,如果 $a 等于 $b。
$a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 引进)
$a != $b 不等 TRUE,如果 $a 不等于 $b。
$a $b 不等 TRUE,如果 $a 不等于 $b。
$a !== $b 非全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 引进)
$a $a > $b 大于 TRUE,如果 $a 严格 $b。
$a $a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b。
逻辑操作符
例子 名称 结果
$a and $b And(逻辑与) TRUE,如果 $a 与 $b 都为 TRUE。
$a or $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE。
$a xor $b Xor(逻辑异或) TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。
$a Not(逻辑非) TRUE,如果 $a 不为 TRUE。
$a&& $b And(逻辑与) TRUE,如果 $a 与 $b 都为 TRUE。
$a || $b Or(逻辑或) TRUE,如果 $a 或 $b 任一为 TRUE。
按位操作符

操作符 名称 结果
$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
$a|| $b Or(按位或) 将把 $a 或者 $b 中为 1 的位设为 1。
xor ^ $b Xor(按位异或) 将把 $a 和 $b 中不同的位设为 1。
Not $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。
$a $a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。
字符串操作符
连接操作符. 它对两个字符串进行操作,并且返回把二者连接在一起的单一字符串
数组操作符

例子 名称 结果
$a + $b 联合 $a 和 $b 的联合。
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE。
$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE。
$a $b 不等 如果 $a 不等于 $b 则为 TRUE。
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE。
其他操作符
自动递增和自动递减操作符
$a=10;
$b=$a++; b=10 ,a=11;
$c=++$a; c=12,a=12;
$d=$a--; d=12,a=11;
$e=--$a; e=10,a=10;
还有一个称为@a的操作符,它让php忽略特定函数调用的失败。
最后一个操作符-外壳命令执行程序。为了它,需要把命令括在反撇号(`)之间,这样命令就被传递给处壳执行.但这样会产生安全。
2.5.2 组合表达式和操作符的过程

结合方向 运算符 附加信息
非结合 clone new clone 和 new
左 [ array()
非结合 ++ -- 递增/递减运算符
非结合 ~ - (int) (float) (string) (array) (object) (bool) @ 类型
非结合 instanceof 类型
右结合 ! 逻辑操作符
左 * / % 算术运算符
左 + - . 算术运算符和字符串运算符
左 > 位运算符
非结合 >= 比较运算符
非结合 == != === !== 比较运算符
左 & 位运算符和引用
左 ^ 位运算符
左 | 位运算符
左 && 逻辑运算符
左 || 逻辑运算符
左 ? : 三元运算符
右 = += -= *= /= .= %= &= |= ^= >= 赋值运算符
左 and 逻辑运算符
左 xor 逻辑运算符
左 or 逻辑运算符
左 , 多处用到
.6 控制结构
2.6.1 if语句
1. if (expr)
statement
else
2. elseif/else if 2.6.2 switch语句
复制代码 代码如下:
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>

switch 语句和具有同样表达式的一系列的 IF 语句相似。很多场合下需要把同一个变量(或表达式)与很多不同的值比较,并根据它等于哪个值来执行不同的代码。   这正是 switch 语句的用途。
复制代码 代码如下:
if ($i == 0) {
echo "i equals 0";
} elseif ($i == 1) {
echo "i equals 1";
} elseif ($i == 2) {
echo "i equals 2";
}
switch ($i) {
case 0:
echo "i equals 0";
break;
case 1:
echo "i equals 1";
break;
case 2:
echo "i equals 2";
break;
}
?>

2.6.3 while/do ....while循环
while(expr)
block
do
block
while (expr);

复制代码 代码如下:
do {
if ($i echo "i is not big enough";
break;
}
$i *= $factor;
if ($i break;
}
echo "i is ok";
/* process i */
} while(0);
?>

2.6.4 for 循环
for(expr1;expr2;expr3)
block
expr1:当第一次遇到FOR循环执行它一次。执行完毕后开始循环迭代。
expr2:在每次迭代之前计算它。如为true,就执行代码块。
expr3-在每次迭代之后计算它
复制代码 代码如下:
/* example 1 */
for ($i = 1; $i echo $i;
}
/* example 2 */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* example 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* example 4 */
for ($i = 1, $j = 0; $i ?>

2.6.5 foreach循环:用于特定类型。在5单元中进行更多讲解
2.6.6 中断循环 :break 和continue

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

86

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

50

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

100

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

293

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

589

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

725

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

63

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

30

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

94

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 3.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.1万人学习

Go 教程
Go 教程

共32课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号