一. 基础语法
PHP 脚本以 <?php 开头,以 ?> 结尾,可以使用echo输出内容到页面,以脚本中的语句以;结尾
<!DOCTYPE html> <html> <body> <?php echo "Hello ZhangJia!"; ?> </body> </html>
php中所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感,但是变量名对大小写是敏感的
二. PHP中的注释
php共有三种注释,两种单行注释,一种多行注释:
<?php // 第一种单行注释 # 第二种单行注释 /* 多行 注释 */ ?>
三. PHP中的变量
简单总结一下php变量的一些特性:
-
PHP 是一门类型松散的语言,声明变量的时候不用声明具体的数据类型
-
声明变量以$符开头,PHP 没有创建变量的命令,变量会在首次为其赋值时被创建,使用变量的时候依旧需要$符
-
变量声明在函数之内,则是局部变量,声明在函数外,则是全局变量,PHP 有三种不同的变量作用域:local(局部),global(全局),static(静态)
-
在函数内无法直接访问全局变量,如果想使用全局变量,则需要使用global 关键字
<?php $x = 1; // 全局变量 function add() { global $x; //在函数内使用全局变量 $y = 2; // 局部变量 $z = $x + $y; echo "x + y = $z"; } add(); //调用add ?>
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量,所以上线的例子还可以改写为:
<?php $x = 1; // 全局变量 function add() { $y = 2; // 局部变量 $z = $GLOBALS['x'] + $y; echo $z; } add(); //调用add ?>
通常,当函数完成/执行后,会删除所有变量,如果不需要删除,则需要使用static关键字,并且每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
<?php function add() { static $x=0; echo $x; $x++; } add(); add(); add(); ?> //输出012
四. PHP的输出
在 PHP 中,有两种基本的输出方法:echo 和 print。区别如下:
-
echo – 可以输出一个或多个字符串,没有返回值
-
print – 只允许输出一个字符串,返回值总为 1
<?php echo "我的名字是", "张甲"; echo "<br>"; print "我的名字是"; print "张甲"; ?>
五. 数据类型
php的数据类型和需要注意的事项如下:
-
字符串:单引和双引都可以
-
整数:可以声明进制
<?php $x = 0x8C; // 十六进制数 echo "<br>"; $x = 047; // 八进制数 ?>
-
浮点数:浮点数是有小数点或指数形式的数字,指数形式:$x = 2.4e3;
-
逻辑:也就是布尔类型,值为true和false
-
数组:array
<?php $x = array("zhang","jia"); echo $x[0]; #输出zhang ?>
-
对象:声明类,然后通过类创建对象,类中可以有变量和函数
class Book { var $name; var $price; function Book($name="计算机网络",$price=49.00) { $this->name = $name; $this->price = $price; } function getName() { return $this -> name; } function getPrice() { return $this -> $price; } } ?>
-
NULL:null值就是空,也用于区分空字符串与空值数据库
<?php $x="Hello world!"; $x=null; var_dump($x); #输出NULL ?>
另外我们可以使用var_dump() 返回变量的数据类型和值
<?php $x = 47; $y = 047; var_dump($x); # 输出:int(47) var_dump($y); # 输出:int(39) ?>
六. 字符串函数
php中常用的字符串函数如下:
-
strlen():计算字符串长度
-
str_word_count():计算字符串中单词个数,以空格分隔
-
strrev():翻转字符串
-
strpos():计算首个匹配的字符位置,下标从0开始
-
str_replace():替换字符串
<?php $x="Zhang jia"; echo strlen($x); #9 echo str_word_count($x); #2 echo strrev($x); # aij gnahZ echo strpos($x,"jia"); #6 echo str_replace("jia","ga", $x); #Zhang ga ?>
七. 常量
常量一旦被定义就无法更改或撤销定义,常量名以字符或下划线开头(常量名称前面没有 $ 符号)。
设置常量需要使用define()函数,有时候还可以看到使用三个参数的define,一般第三个参数为true代表对大小写不敏感,但是这种方式在新版PHP中已经被弃用,使用会触发警告。
常量是默认全局的,而且可以贯穿整个脚本使用。
<?php define("NAME","My name is ZhangJia"); echo NAME; ?>
八. 运算符
-
算术运算符
<?php $x=3; $y=2; echo ($x + $y); // 输出 5 echo "<br/>"; echo ($x - $y); // 输出 1 echo "<br/>"; echo ($x * $y); // 输出 6 echo "<br/>"; echo ($x / $y); // 输出 1.5,而不是1 echo "<br/>"; echo ($x % $y); // 输出 1 ?>
-
赋值运算符:=、+=、-=、*=、/=、%=
-
字符串运算符:. (串接)和 .=(串接赋值)
<?php $a = "Zhang"; $b = $a . " Jia"; echo $a; // 输出 Zhang echo "<br/>"; echo $b; // 输出 Zhang Jia echo "<br/>"; $x="Zhang"; $x .= " ga"; echo $x; // 输出 Zhang ga ?>
-
递增/递减运算符:++$x、$x++、–$x、$x–
-
比较运算符:
-
逻辑运算符
-
数组运算符
九. if~else 和switch
if-else
<?php $age = 18; if ($age < 18) { echo "未成年"; } else { echo "已经成年"; } ?>
switch
<?php $name = "zj"; switch ($name) { case "jz": echo "I'm jz"; break; case "zj": echo "I'm zj"; break; default: echo "I'm no one"; } ?>
十. While和do…while循环
while和do…while用于不确定次数的循环
<?php # while $age = 1; while ($age < 18){ $age++; } echo $age; #18 # do ... while $age = 1; do { $age++; } while($age < 18); #18 echo $age; #18 ?>
十一. for循环和forEach
如果确定循环次数,则可以使用for循环和forEach,而foreach循环又只适用于数组,并用于遍历数组中的每个键/值对
<?php for ($x=0; $x<=5; $x++) { echo "x = $x <br>"; } $names = array("zhangjia","zhangyi","zhangjie"); foreach ($names as $name) { echo "$name <br>"; } ?>
十二. 函数
php拥有超过 1000 个内建的函数,除了内建的 PHP 函数,我们可以创建我们自己的函数。页面加载时函数不会立即执行,函数只有在被调用时才会执行。
尝试自定义一个函数,该函数有两个参数,其中age有默认值为18
<?php function getPersonInfo($name,$age=18){ return "My name is $name".",I'm $age years old"; } echo "Hello,".getPersonInfo("ZhangJia",20); # Hello,My name is ZhangJia,I'm 20 years old echo "Hello,".getPersonInfo("ZhangYi"); # Hello,My name is ZhangYi,I'm 18 years old ?>
十三. 数组
在 PHP 中, array() 函数用于创建数组,在 PHP 中,有三种数组类型:
-
索引数组 – 带有数字索引的数组
-
关联数组 – 带有指定键的数组
-
多维数组 – 包含一个或多个数组的数组
索引数组:
<?php $names = array("zhangjia","zhangyi","zhangjie"); echo count($names); #3 ?>
关联数组:
<?php $names=array("Me"=>"zhangjia","brother"=>"zhangyi","sister"=>"zhangjie"); echo "My brother name is ". $names['brother'] # My brother name is zhangyi ?>
多维数组:多维数组指的是包含一个或多个数组的数组,一般也就是二维数组为止,三维数组用的就很少了,比如用二维数组存储以下内容:
姓名 | 年龄 | 性别 |
张甲 | 男 | 22 |
张一 | 男 | 22 |
<?php $names = array ( array("张甲",22,"男"), array("张一",22,"男") ); foreach($names as $name) { echo "My name is $name[0], I am $name[1], My gender is $name[2] <br/>"; } ?>
十四. 数组排序
在本节中,我们将学习如下 PHP 数组排序函数:
-
sort() – 以升序对数组排序
-
rsort() – 以降序对数组排序
-
asort() – 根据值,以升序对关联数组进行排序
-
ksort() – 根据键,以升序对关联数组进行排序
-
arsort() – 根据值,以降序对关联数组进行排序
-
krsort() – 根据键,以降序对关联数组进行排序
十五. 超全局变量
PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们,这些超全局变量一共有9个,分别是:
-
$GLOBALS:用于在PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)
-
$_SERVER:用于保存关于报头、路径和脚本位置的信息
-
$_REQUEST:用于收集 HTML 表单提交的数据。
-
$_POST:用于收集提交 method=”post” 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
-
$_GET:用于收集提交 HTML 表单 (method=”get”) 之后的表单数据。
-
$_FILES:用于上传文件
-
$_ENV:用于保存服务器端环境变量
-
$_COOKIE:用户保存cookie信息
-
$_SESSION:用于保存session信息
更详细内容请查看W3school
参考资料
以上所有内容均整理自W3school
请登录之后再进行评论