热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP学习笔记2(超多,内容超详细)

PHPEOF(heredoc)使用说明PHPEOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh
PHP EOF(heredoc) 使用说明

PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。

使用概述:

  • 1. 必须后接分号,否则编译通不过。
  • 2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
  • 3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
  • 4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
  • 5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。

实例

echo <<我的第一个标题

我的第一个段落。


EOF;
// 结束需要独立一行且前后不能空格
?>

 

注意&#xff1a;

1.以 <<

2.开始标记和结束标记相同&#xff0c;比如常用大写的 EOT、EOD、EOF 来表示&#xff0c;但是不只限于那几个(也可以用&#xff1a;JSON、HTML等)&#xff0c;只要保证开始标记和结束标记不在正文中出现即可。

3.位于开始标记和结束标记之间的变量可以被正常解析&#xff0c;但是函数则不可以。在 heredoc 中&#xff0c;变量不需要用连接符 . 或 , 来拼接&#xff0c;如下&#xff1a;

实例

$name&#61;"IP";
$a&#61; <<EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>

PHP 5 数据类型

String&#xff08;字符串&#xff09;, Integer&#xff08;整型&#xff09;, Float&#xff08;浮点型&#xff09;, Boolean&#xff08;布尔型&#xff09;, Array&#xff08;数组&#xff09;, Object&#xff08;对象&#xff09;, NULL&#xff08;空值&#xff09;。



PHP 字符串

一个字符串是一串字符的序列&#xff0c;就像 "Hello world!"。

你可以将任何文本放在单引号和双引号中&#xff1a;

实例


$x &#61; "Hello world!";
echo $x;
echo "
";
$x &#61; &#39;Hello world!&#39;;
echo $x;
?>

 

PHP 整型

整数是一个没有小数的数字。

整数规则:

  • 整数必须至少有一个数字 (0-9)
  • 整数不能包含逗号或空格
  • 整数是没有小数点的
  • 整数可以是正数或负数
  • 整型可以用三种格式来指定&#xff1a;十进制&#xff0c; 十六进制&#xff08; 以 0x 为前缀&#xff09;或八进制&#xff08;前缀为 0&#xff09;。

在以下实例中我们将测试不同的数字。

PHP var_dump()  函数返回变量的数据类型和值&#xff1a;


$x &#61; 5985;
var_dump($x);
echo "
";
$x &#61; -345; // 负数
var_dump($x);
echo "
";
$x &#61; 0x8C; // 十六进制数
var_dump($x);
echo "
";
$x &#61; 047; // 八进制数
var_dump($x);
?>

 

PHP 浮点型

浮点数是带小数部分的数字&#xff0c;或是指数形式。

在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值&#xff1a;

实例


$x &#61; 10.365;
var_dump($x);
echo "
";
$x &#61; 2.4e3;
var_dump($x);
echo "
";
$x &#61; 8E-5;
var_dump($x);
?>

PHP 布尔型

布尔型可以是 TRUE 或 FALSE。

$x&#61;true;
$y&#61;false;

 

布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。



PHP 数组

数组可以在一个变量中存储多个值。

在以下实例中创建了一个数组&#xff0c; 然后使用 PHP var_dump() 函数返回数组的数据类型和值&#xff1a;

实例


$cars&#61;array("Volvo","BMW","Toyota");
var_dump($cars);
?>

 

 

PHP NULL 值

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。

NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。

可以通过设置变量值为 NULL 来清空变量数据&#xff1a;

实例


$x&#61;"Hello world!";
$x&#61;null;
var_dump($x);
?>

 

PHP 类型比较

虽然 PHP 是弱类型语言&#xff0c;但也需要明白变量类型及它们的意义&#xff0c;因为我们经常需要对 PHP 变量进行比较&#xff0c;包含松散和严格比较。

  • 松散比较&#xff1a;使用两个等号 &#61;&#61; 比较&#xff0c;只比较值&#xff0c;不比较类型。
  • 严格比较&#xff1a;用三个等号 &#61;&#61;&#61; 比较&#xff0c;除了比较值&#xff0c;也比较类型。 

例如&#xff0c;"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "FALSE" 是一个字符串。

 实例

if(42 &#61;&#61; "42") {echo &#39;1、值相等&#39;;
}echo PHP_EOL; // 换行符if(42 &#61;&#61;&#61; "42") {echo &#39;2、类型相等&#39;;
} else {echo &#39;3、类型不相等&#39;;
}
?>

 

PHP 5 常量

常量值被定义后&#xff0c;在脚本的其他任何地方都不能被改变。



PHP 常量

常量是一个简单值的标识符。该值在脚本中不能改变。

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

注意&#xff1a; 常量在整个脚本中都可以使用。



设置 PHP 常量

设置常量&#xff0c;使用 define() 函数&#xff0c;函数语法如下&#xff1a;

bool define ( string $name , mixed $value [, bool $case_insensitive &#61; false ] )

该函数有三个参数:

  • name&#xff1a;必选参数&#xff0c;常量名称&#xff0c;即标志符。
  • value&#xff1a;必选参数&#xff0c;常量的值。
  • case_insensitive &#xff1a;可选参数&#xff0c;如果设置为 TRUE&#xff0c;该常量则大小写不敏感。默认是大小写敏感的。

以下实例我们创建一个 区分大小写的常量, 常量值为 "欢迎访问 Runoob.com"&#xff1a;

实例


// 区分大小写的常量名
define("GREETING", "欢迎访问 ip.com");
echo GREETING; // 输出 "欢迎访问 ip.com"
echo &#39;
&#39;;
echo greeting; // 输出 "greeting"&#xff0c;但是有警告信息&#xff0c;表示该常量未定义
?>

 

以下实例我们创建一个 不区分大小写的常量, 常量值为 "欢迎访问 Runoob.com"&#xff1a;

实例


// 不区分大小写的常量名
define("GREETING", "欢迎访问 ip.com", true);
echo greeting; // 输出 "欢迎访问 ip.com"
?>

常量是全局的

常量在定义后&#xff0c;默认是全局变量&#xff0c;可以在整个运行的脚本的任何地方使用。

以下实例演示了在函数内使用常量&#xff0c;即便常量定义在函数外也可以正常使用常量。

实例


define("GREETING", "欢迎访问 ip.com");function myTest() {echo GREETING;
}myTest(); // 输出 "欢迎访问 ip.com"
?>

PHP 字符串变量

字符串变量用于存储并处理文本。



PHP 中的字符串变量

字符串变量用于包含有字符的值。

在创建字符串之后&#xff0c;我们就可以对它进行操作了。您可以直接在函数中使用字符串&#xff0c;或者把它存储在变量中。

在下面的实例中&#xff0c;我们创建一个名为 txt 的字符串变量&#xff0c;并赋值为 "Hello world!" 。然后我们输出 txt 变量的值&#xff1a;

实例

$txt&#61;"Hello world!";
echo $txt;
?>

 

 

PHP 并置运算符

在 PHP 中&#xff0c;只有一个字符串运算符。

并置运算符 (.) 用于把两个字符串值连接起来。

下面的实例演示了如何将两个字符串变量连接在一起&#xff1a;

实例

$txt1&#61;"Hello world!";
$txt2&#61;"What a nice day!";
echo $txt1 . " " . $txt2;
?>

上面的代码将输出&#xff1a;Hello world! What a nice day!

提示&#xff1a;在上面的代码中&#xff0c;我们已经使用了两次并置运算符。这是由于我们需要在两个字符串之间插入一个空格。

PHP strlen() 函数

有时知道字符串值的长度是很有用的。

strlen() 函数返回字符串的长度&#xff08;字节数&#xff09;。

下面的实例返回字符串 "Hello world!" 的长度&#xff1a;

实例

echo strlen("Hello world!");
?>

上面的代码将输出&#xff1a;12

提示&#xff1a;strlen() 常常用在循环和其他函数中&#xff0c;因为那时确定字符串何时结束是很重要的。&#xff08;例如&#xff0c;在循环中&#xff0c;我们需要在字符串中的最后一个字符之后结束循环。&#xff09;

PHP strpos() 函数

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

如果在字符串中找到匹配&#xff0c;该函数会返回第一个匹配的字符位置。如果未找到匹配&#xff0c;则返回 FALSE。

下面的实例在字符串 "Hello world!" 中查找文本 "world"&#xff1a;

实例

echo strpos("Hello world!","world");
?>

上面的代码将输出&#xff1a;6

提示&#xff1a;在上面的实例中&#xff0c;字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是&#xff0c;字符串中第一个字符的位置是 0&#xff0c;而不是 1。

PHP 运算符

本章节我们将讨论 PHP 中不同运算符的应用。

在 PHP 中&#xff0c;赋值运算符 &#61; 用于给变量赋值。

在 PHP 中&#xff0c;算术运算符 &#43; 用于把值加在一起。



PHP 算术运算符


运算符名称描述实例结果
x &#43; yx 和 y 的和2 &#43; 24
x - yx 和 y 的差5 - 23
x * yx 和 y 的积5 * 210
x / yx 和 y 的商15 / 53
x % y模&#xff08;除法的余数&#xff09;x 除以 y 的余数5 % 2
10 % 8
10 % 2
1
2
0
- x取反x 取反

$x &#61;2;
echo -$x;
?>

-2
a . b并置连接两个字符串"Hi" . "Ha"HiHa

以下实例演示了使用不同算术运算符得到的不同结果&#xff1a;

实例


$x&#61;10;
$y&#61;6;
echo ($x &#43; $y); // 输出16
echo &#39;
&#39;; // 换行echo ($x - $y); // 输出4
echo &#39;
&#39;; // 换行echo ($x * $y); // 输出60
echo &#39;
&#39;; // 换行echo ($x / $y); // 输出1.6666666666667
echo &#39;
&#39;; // 换行echo ($x % $y); // 输出4
echo &#39;
&#39;; // 换行echo -$x;
?>

PHP 赋值运算符

在 PHP 中&#xff0c;基本的赋值运算符是 "&#61;"。它意味着左操作数被设置为右侧表达式的值。也就是说&#xff0c;"$x &#61; 5" 的值是 5。

运算符等同于描述
x &#61; yx &#61; y左操作数被设置为右侧表达式的值
x &#43;&#61; yx &#61; x &#43; y
x -&#61; yx &#61; x - y
x *&#61; yx &#61; x * y
x /&#61; yx &#61; x / y
x %&#61; yx &#61; x % y模&#xff08;除法的余数&#xff09;
a .&#61; ba &#61; a . b连接两个字符串

以下实例演示了使用不同赋值运算符得到的不同结果&#xff1a;

实例


$x&#61;10;
echo $x; // 输出10$y&#61;20;
$y &#43;&#61; 100;
echo $y; // 输出120$z&#61;50;
$z -&#61; 25;
echo $z; // 输出25$i&#61;5;
$i *&#61; 6;
echo $i; // 输出30$j&#61;10;
$j /&#61; 5;
echo $j; // 输出2$k&#61;15;
$k %&#61; 4;
echo $k; // 输出3
?>

PHP 递增/递减运算符


运算符名称描述
&#43;&#43; x预递增x 加 1&#xff0c;然后返回 x
x &#43;&#43;后递增返回 x&#xff0c;然后 x 加 1
-- x预递减x 减 1&#xff0c;然后返回 x
x --后递减返回 x&#xff0c;然后 x 减 1

以下实例演示了使用递增/递减运算符得到的结果&#xff1a;

实例


$x&#61;10;
echo &#43;&#43;$x; // 输出11$y&#61;10;
echo $y&#43;&#43;; // 输出10$z&#61;5;
echo --$z; // 输出4$i&#61;5;
echo $i--; // 输出5
?>

PHP 比较运算符

比较操作符可以让您比较两个值&#xff1a;

运算符名称描述实例
x &#61;&#61; y等于如果 x 等于 y&#xff0c;则返回 true5&#61;&#61;8 返回 false
x &#61;&#61;&#61; y绝对等于如果 x 等于 y&#xff0c;且它们类型相同&#xff0c;则返回 true5&#61;&#61;&#61;"5" 返回 false
x !&#61; y不等于如果 x 不等于 y&#xff0c;则返回 true5!&#61;8 返回 true
x <> y不等于如果 x 不等于 y&#xff0c;则返回 true5<>8 返回 true
x !&#61;&#61; y绝对不等于如果 x 不等于 y&#xff0c;或它们类型不相同&#xff0c;则返回 true5!&#61;&#61;"5" 返回 true
x > y大于如果 x 大于 y&#xff0c;则返回 true5>8 返回 false
x 小于如果 x 小于 y&#xff0c;则返回 true5<8 返回 true
x >&#61; y大于等于如果 x 大于或者等于 y&#xff0c;则返回 true5>&#61;8 返回 false
x <&#61; y小于等于如果 x 小于或者等于 y&#xff0c;则返回 true5<&#61;8 返回 true

以下实例演示了使用一些比较运算符得到的不同结果&#xff1a;

实例


$x&#61;100;
$y&#61;"100";var_dump($x &#61;&#61; $y);
echo "
";
var_dump($x &#61;&#61;&#61; $y);
echo "
";
var_dump($x !&#61; $y);
echo "
";
var_dump($x !&#61;&#61; $y);
echo "
";$a&#61;50;
$b&#61;90;var_dump($a > $b);
echo "
";
var_dump($a <$b);
?>

PHP 逻辑运算符


运算符名称描述实例
x and y如果 x 和 y 都为 true&#xff0c;则返回 truex&#61;6
y&#61;3
(x <10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true&#xff0c;则返回 truex&#61;6
y&#61;3
(x&#61;&#61;6 or y&#61;&#61;5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true&#xff0c;则返回 truex&#61;6
y&#61;3
(x&#61;&#61;6 xor y&#61;&#61;3) 返回 false
x && y如果 x 和 y 都为 true&#xff0c;则返回 truex&#61;6
y&#61;3
(x <10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true&#xff0c;则返回 truex&#61;6
y&#61;3
(x&#61;&#61;5 || y&#61;&#61;5) 返回 false
! x如果 x 不为 true&#xff0c;则返回 truex&#61;6
y&#61;3
!(x&#61;&#61;y) 返回 true



PHP 数组运算符


运算符名称描述
x &#43; y集合x 和 y 的集合
x &#61;&#61; y相等如果 x 和 y 具有相同的键/值对&#xff0c;则返回 true
x &#61;&#61;&#61; y恒等如果 x 和 y 具有相同的键/值对&#xff0c;且顺序相同类型相同&#xff0c;则返回 true
x !&#61; y不相等如果 x 不等于 y&#xff0c;则返回 true
x <> y不相等如果 x 不等于 y&#xff0c;则返回 true
x !&#61;&#61; y不恒等如果 x 不等于 y&#xff0c;则返回 true

以下实例演示了使用一些数组运算符得到的不同结果&#xff1a;

实例


$x &#61; array("a" &#61;> "red", "b" &#61;> "green");
$y &#61; array("c" &#61;> "blue", "d" &#61;> "yellow");
$z &#61; $x &#43; $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x &#61;&#61; $y);
var_dump($x &#61;&#61;&#61; $y);
var_dump($x !&#61; $y);
var_dump($x <> $y);
var_dump($x !&#61;&#61; $y);
?>

运算符优先级

下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级&#xff0c;此时它们的结合方向决定求值顺序。

说明&#xff1a;左 &#xff1d; 从左到右&#xff0c;右 &#xff1d; 从右到左。

结合方向运算符附加信息
clone newclone 和 new
[array()
&#43;&#43; -- ~ (int) (float) (string) (array) (object) (bool) &#64;类型和递增&#xff0f;递减
instanceof类型
!逻辑运算符
* / %算术运算符
&#43; – .算术运算符和字符串运算符
<<>>位运算符
&#61;&#61; !&#61; &#61;&#61;&#61; !&#61;&#61; <>比较运算符
&位运算符和引用
^位运算符
|位运算符
&&逻辑运算符
||逻辑运算符
? :三元运算符
&#61; &#43;&#61; -&#61; *&#61; /&#61; .&#61; %&#61; &&#61; |&#61; ^&#61; <<&#61; >>&#61; &#61;>赋值运算符
and逻辑运算符
xor逻辑运算符
or逻辑运算符
,多处用到

运算符优先级中&#xff0c;or 和 ||&#xff0c;&& 和 and 都是逻辑运算符&#xff0c;效果一样&#xff0c;但是其优先级却不一样。

实例


// 优先级&#xff1a; && > &#61; > and
// 优先级&#xff1a; || > &#61; > or$a &#61; 3;
$b &#61; false;
$c &#61; $a or $b;
var_dump($c); // 这里的 $c 为 int 值3&#xff0c;而不是 boolean 值 true
$d &#61; $a || $b;
var_dump($d); //这里的 $d 就是 boolean 值 true
?>

以上实例输出结果为&#xff1a;

int(3)
bool(true)

 

括号的使用

我们通过括号的配对来明确标明运算顺序&#xff0c;而非靠运算符优先级和结合性来决定&#xff0c;通常能够增加代码的可读性。

实例


// 括号优先运算$a &#61; 1;
$b &#61; 2;
$c &#61; 3;
$d &#61; $a &#43; $b * $c;
echo $d;
echo "\n";
$e &#61; ($a &#43; $b) * $c; // 使用括号
echo $e;
echo "\n";
?>

以上实例输出结果为&#xff1a;

7
9

 

PHP If...Else 语句

条件语句用于根据不同条件执行不同动作。



PHP 条件语句

当您编写代码时&#xff0c;您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。

在 PHP 中&#xff0c;提供了下列条件语句&#xff1a;

  • if 语句 - 在条件成立时执行代码
  • if...else 语句 - 在条件成立时执行一块代码&#xff0c;条件不成立时执行另一块代码
  • if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
  • switch 语句 - 在若干条件之一成立时执行一个代码块



PHP - if 语句

if 语句用于仅当指定条件成立时执行代码

语法


if (条件)
{条件成立时要执行的代码;
}

如果当前时间小于 20&#xff0c;下面的实例将输出 "Have a good day!"&#xff1a;

实例


$t&#61;date("H");
if ($t<"20")
{echo "Have a good day!";
}
?>

 

PHP - if...else 语句

在条件成立时执行一块代码&#xff0c;条件不成立时执行另一块代码&#xff0c;请使用 if....else 语句。

语法


if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}

如果当前时间小于 20&#xff0c;下面的实例将输出 "Have a good day!"&#xff0c;否则输出 "Have a good night!"&#xff1a;

实例


$t&#61;date("H");
if ($t<"20")
{echo "Have a good day!";
}
else
{echo "Have a good night!";
}
?>

 

PHP - if...elseif....else 语句

在若干条件之一成立时执行一个代码块&#xff0c;请使用 if....elseif...else 语句。.

语法


if (条件)
{if 条件成立时执行的代码;
}
elseif (条件)
{elseif 条件成立时执行的代码;
}
else
{条件不成立时执行的代码;
}

如果当前时间小于 10&#xff0c;下面的实例将输出 "Have a good morning!"&#xff0c;如果当前时间不小于 10 且小于 20&#xff0c;则输出 "Have a good day!"&#xff0c;否则输出 "Have a good night!"&#xff1a;

实例


$t&#61;date("H");
if ($t<"10")
{echo "Have a good morning!";
}
elseif ($t<"20")
{echo "Have a good day!";
}
else
{echo "Have a good night!";
}
?>

 

PHP Switch 语句

switch 语句用于根据多个不同条件执行不同动作。



PHP Switch 语句

如果您希望有选择地执行若干代码块之一&#xff0c;请使用 switch 语句。

语法


switch (n)
{
case label1:如果 n&#61;label1&#xff0c;此处代码将执行;break;
case label2:如果 n&#61;label2&#xff0c;此处代码将执行;break;
default:如果 n 既不等于 label1 也不等于 label2&#xff0c;此处代码将执行;
}
?>

工作原理&#xff1a;首先对一个简单的表达式 n&#xff08;通常是变量&#xff09;进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配&#xff0c;则执行与 case 关联的代码。代码执行后&#xff0c;使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配&#xff08;即没有 case 为真&#xff09;时执行。

实例


$favcolor&#61;"red";
switch ($favcolor)
{
case "red":echo "你喜欢的颜色是红色!";break;
case "blue":echo "你喜欢的颜色是蓝色!";break;
case "green":echo "你喜欢的颜色是绿色!";break;
default:echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>

PHP 数组


数组能够在单个变量中存储多个值&#xff1a;

实例


$cars&#61;array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

数组是什么&#xff1f;

数组是一个能在单个变量中存储多个值的特殊变量。

如果您有一个项目清单&#xff08;例如&#xff1a;车名字的清单&#xff09;&#xff0c;将其存储到单个变量中&#xff0c;如下所示&#xff1a;

$cars1&#61;"Volvo";
$cars2&#61;"BMW";
$cars3&#61;"Toyota";

然而&#xff0c;如果您想要遍历数组并找出特定的一个呢&#xff1f;如果数组的项不只 3 个而是 300 个呢&#xff1f;

解决办法是创建一个数组&#xff01;

数组可以在单个变量中存储多个值&#xff0c;并且您可以根据键访问其中的值。



在 PHP 中创建数组

在 PHP 中&#xff0c;array() 函数用于创建数组&#xff1a;

array();

在 PHP 中&#xff0c;有三种类型的数组&#xff1a;

  • 数值数组 - 带有数字 ID 键的数组
  • 关联数组 - 带有指定的键的数组&#xff0c;每个键关联一个值
  • 多维数组 - 包含一个或多个数组的数组



PHP 数值数组

这里有两种创建数值数组的方法&#xff1a;

自动分配 ID 键&#xff08;ID 键总是从 0 开始&#xff09;&#xff1a;

$cars&#61;array("Volvo","BMW","Toyota");

人工分配 ID 键&#xff1a;

$cars[0]&#61;"Volvo";
$cars[1]&#61;"BMW";
$cars[2]&#61;"Toyota";

下面的实例创建一个名为 $cars 的数值数组&#xff0c;并给数组分配三个元素,然后打印一段包含数组值的文本&#xff1a;

实例


$cars&#61;array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

获取数组的长度 - count() 函数

count() 函数用于返回数组的长度&#xff08;元素的数量&#xff09;&#xff1a;

实例


$cars&#61;array("Volvo","BMW","Toyota");
echo count($cars);
?>

遍历数值数组

遍历并打印数值数组中的所有值&#xff0c;您可以使用 for 循环&#xff0c;如下所示&#xff1a;

实例


$cars&#61;array("Volvo","BMW","Toyota");
$arrlength&#61;count($cars);for($x&#61;0;$x<$arrlength;$x&#43;&#43;)
{echo $cars[$x];echo "
";
}
?>

PHP 关联数组

关联数组是使用您分配给数组的指定的键的数组。

这里有两种创建关联数组的方法&#xff1a;

$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");

or:

$age[&#39;Peter&#39;]&#61;"35";
$age[&#39;Ben&#39;]&#61;"37";
$age[&#39;Joe&#39;]&#61;"43";

随后可以在脚本中使用指定的键&#xff1a;

实例


$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");
echo "Peter is " . $age[&#39;Peter&#39;] . " years old.";
?>

遍历关联数组

遍历并打印关联数组中的所有值&#xff0c;您可以使用 foreach 循环&#xff0c;如下所示&#xff1a;

实例


$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");foreach($age as $x&#61;>$x_value)
{echo "Key&#61;" . $x . ", Value&#61;" . $x_value;echo "
";
}
?>

PHP 数组排序


数组中的元素可以按字母或数字顺序进行降序或升序排列。



PHP - 数组排序函数

在本章中&#xff0c;我们将一一介绍下列 PHP 数组排序函数&#xff1a;

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值&#xff0c;对数组进行升序排列
  • ksort() - 根据关联数组的键&#xff0c;对数组进行升序排列
  • arsort() - 根据关联数组的值&#xff0c;对数组进行降序排列
  • krsort() - 根据关联数组的键&#xff0c;对数组进行降序排列



sort() - 对数组进行升序排列

下面的实例将 $cars 数组中的元素按照字母升序排列&#xff1a;

实例

$cars&#61;array("Volvo","BMW","Toyota");
sort($cars);
?>

下面的实例将 $numbers 数组中的元素按照数字升序排列&#xff1a;

实例

$numbers&#61;array(4,6,2,22,11);
sort($numbers);
?>

rsort() - 对数组进行降序排列

下面的实例将 $cars 数组中的元素按照字母降序排列&#xff1a;

实例

$cars&#61;array("Volvo","BMW","Toyota");
rsort($cars);
?>

下面的实例将 $numbers 数组中的元素按照数字降序排列&#xff1a;

实例

$numbers&#61;array(4,6,2,22,11);
rsort($numbers);
?>

asort() - 根据数组的值&#xff0c;对数组进行升序排列

下面的实例根据数组的值&#xff0c;对关联数组进行升序排列&#xff1a;

实例

$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");
asort($age);
?>

ksort() - 根据数组的键&#xff0c;对数组进行升序排列

下面的实例根据数组的键&#xff0c;对关联数组进行升序排列&#xff1a;

实例

$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");
ksort($age);
?>

arsort() - 根据数组的值&#xff0c;对数组进行降序排列

下面的实例根据数组的值&#xff0c;对关联数组进行降序排列&#xff1a;

实例

$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");
arsort($age);
?>

krsort() - 根据数组的键&#xff0c;对数组进行降序排列

下面的实例根据数组的键&#xff0c;对关联数组进行降序排列&#xff1a;

实例

$age&#61;array("Peter"&#61;>"35","Ben"&#61;>"37","Joe"&#61;>"43");
krsort($age);
?>

PHP 超级全局变量


超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量&#xff0c;在一个脚本的全部作用域中都可用。



PHP 超级全局变量

PHP中预定义了几个超级全局变量&#xff08;superglobals&#xff09; &#xff0c;这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明&#xff0c;就可以在函数及类中使用。

PHP 超级全局变量列表:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。



PHP $GLOBALS

$GLOBALS 是PHP的一个超级全局变量组&#xff0c;在一个PHP脚本的全部作用域中都可以访问。

$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

以下实例介绍了如何使用超级全局变量 $GLOBALS:

实例


$x &#61; 75;
$y &#61; 25;function addition()
{ $GLOBALS[&#39;z&#39;] &#61; $GLOBALS[&#39;x&#39;] &#43; $GLOBALS[&#39;y&#39;];
}addition();
echo $z;
?>

PHP $_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目&#xff1b;服务器可能会忽略一些&#xff0c;或者提供一些没有在这里列举出来的项目。

以下实例中展示了如何使用$_SERVER中的元素:

实例


echo $_SERVER[&#39;PHP_SELF&#39;];
echo "
";
echo $_SERVER[&#39;SERVER_NAME&#39;];
echo "
";
echo $_SERVER[&#39;HTTP_HOST&#39;];
echo "
";
echo $_SERVER[&#39;HTTP_REFERER&#39;];
echo "
";
echo $_SERVER[&#39;HTTP_USER_AGENT&#39;];
echo "
";
echo $_SERVER[&#39;SCRIPT_NAME&#39;];
?>

下表列出了所有 $_SERVER 变量中的重要元素:

元素/代码描述
$_SERVER[&#39;PHP_SELF&#39;]当前执行脚本的文件名&#xff0c;与 document root 有关。例如&#xff0c;在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER[&#39;PHP_SELF&#39;] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始&#xff0c;如果 PHP 以命令行模式运行&#xff0c;这个变量将包含脚本名。之前的版本该变量不可用。
$_SERVER[&#39;GATEWAY_INTERFACE&#39;]服务器使用的 CGI 规范的版本&#xff1b;例如&#xff0c;"CGI/1.1"。
$_SERVER[&#39;SERVER_ADDR&#39;]当前运行脚本所在的服务器的 IP 地址。
$_SERVER[&#39;SERVER_NAME&#39;]当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中&#xff0c;该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com)
$_SERVER[&#39;SERVER_SOFTWARE&#39;]服务器标识字符串&#xff0c;在响应请求时的头信息中给出。 (如&#xff1a;Apache/2.2.24)
$_SERVER[&#39;SERVER_PROTOCOL&#39;]请求页面时通信协议的名称和版本。例如&#xff0c;"HTTP/1.0"。
$_SERVER[&#39;REQUEST_METHOD&#39;]访问页面使用的请求方法&#xff1b;例如&#xff0c;"GET", "HEAD"&#xff0c;"POST"&#xff0c;"PUT"。
$_SERVER[&#39;REQUEST_TIME&#39;]请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如&#xff1a;1377687496)
$_SERVER[&#39;QUERY_STRING&#39;]query string&#xff08;查询字符串&#xff09;&#xff0c;如果有的话&#xff0c;通过它进行页面访问。
$_SERVER[&#39;HTTP_ACCEPT&#39;]当前请求头中 Accept: 项的内容&#xff0c;如果存在的话。
$_SERVER[&#39;HTTP_ACCEPT_CHARSET&#39;]当前请求头中 Accept-Charset: 项的内容&#xff0c;如果存在的话。例如&#xff1a;"iso-8859-1,*,utf-8"。
$_SERVER[&#39;HTTP_HOST&#39;]当前请求头中 Host: 项的内容&#xff0c;如果存在的话。
$_SERVER[&#39;HTTP_REFERER&#39;]引导用户代理到当前页的前一页的地址&#xff08;如果存在&#xff09;。由 user agent 设置决定。并不是所有的用户代理都会设置该项&#xff0c;有的还提供了修改 HTTP_REFERER 的功能。简言之&#xff0c;该值并不可信。)
$_SERVER[&#39;HTTPS&#39;]如果脚本是通过 HTTPS 协议被访问&#xff0c;则被设为一个非空的值。
$_SERVER[&#39;REMOTE_ADDR&#39;]浏览当前页面的用户的 IP 地址。
$_SERVER[&#39;REMOTE_HOST&#39;]浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
$_SERVER[&#39;REMOTE_PORT&#39;]用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER[&#39;SCRIPT_FILENAME&#39;]当前执行脚本的绝对路径。
$_SERVER[&#39;SERVER_ADMIN&#39;]该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上&#xff0c;则该值是那个虚拟主机的值。(如&#xff1a;someone&#64;runoob.com)
$_SERVER[&#39;SERVER_PORT&#39;]Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接&#xff0c;则这个值为用户设置的 HTTP 端口。
$_SERVER[&#39;SERVER_SIGNATURE&#39;]包含了服务器版本和虚拟主机名的字符串。
$_SERVER[&#39;PATH_TRANSLATED&#39;]当前脚本所在文件系统&#xff08;非文档根目录&#xff09;的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER[&#39;SCRIPT_NAME&#39;]包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
$_SERVER[&#39;SCRIPT_URI&#39;]URI 用来指定要访问的页面。例如 "/index.html"。

 

PHP $_REQUEST

PHP $_REQUEST 用于收集HTML表单提交的数据。

以下实例显示了一个输入字段&#xff08;input&#xff09;及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中&#xff0c;我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据&#xff0c;你可以修改该指定的脚本文件名。 然后&#xff0c;我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:

实例



">
Name:

$name &#61; $_REQUEST[&#39;fname&#39;];
echo $name;
?>


PHP $_POST

PHP $_POST 被广泛应用于收集表单数据&#xff0c;在HTML form标签的指定该属性&#xff1a;"method&#61;"post"。

以下实例显示了一个输入字段&#xff08;input&#xff09;及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 在这个实例中&#xff0c;我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据&#xff0c;你可以修改该指定的脚本文件名。 然后&#xff0c;我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:

实例



">
Name:

$name &#61; $_POST[&#39;fname&#39;];
echo $name;
?>


PHP $_GET

PHP $_GET 同样被广泛应用于收集表单数据&#xff0c;在HTML form标签的指定该属性&#xff1a;"method&#61;"get"。

$_GET 也可以收集URL中发送的数据。

假定我们有一个包含参数的超链接HTML页面&#xff1a;


Test $GET

当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。

以下实例显示了 "test_get.php" 文件的代码:

实例



echo "Study " . $_GET[&#39;subject&#39;] . " &#64; " . $_GET[&#39;web&#39;];
?>


PHP 循环 - While 循环


循环执行代码块指定的次数&#xff0c;或者当指定的条件为真时循环执行代码块。



PHP 循环

在您编写代码时&#xff0c;您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。

在 PHP 中&#xff0c;提供了下列循环语句&#xff1a;

  • while - 只要指定的条件成立&#xff0c;则循环执行代码块
  • do...while - 首先执行一次代码块&#xff0c;然后在指定的条件成立时重复这个循环
  • for - 循环执行代码块指定的次数
  • foreach - 根据数组中每个元素来循环代码块



while 循环

while 循环将重复执行代码块&#xff0c;直到指定的条件不成立。

语法

while (条件)
{要执行的代码;
}

实例

下面的实例首先设置变量 i 的值为 1 ($i&#61;1;)。

然后&#xff0c;只要 i 小于或者等于 5&#xff0c;while 循环将继续运行。循环每运行一次&#xff0c;i 就会递增 1&#xff1a;


$i&#61;1;
while($i<&#61;5)
{echo "The number is " . $i . "
";$i&#43;&#43;;
}
?>

输出&#xff1a;

The number is 1
The number is 2
The number is 3
The number is 4
The number is 5


do...while 语句

do...while 语句会至少执行一次代码&#xff0c;然后检查条件&#xff0c;只要条件成立&#xff0c;就会重复进行循环。

语法


do
{要执行的代码;
}
while (条件);

 

实例

下面的实例首先设置变量 i 的值为 1 ($i&#61;1;)。

然后&#xff0c;开始 do...while 循环。循环将变量 i 的值递增 1&#xff0c;然后输出。先检查条件&#xff08;i 小于或者等于 5&#xff09;&#xff0c;只要 i 小于或者等于 5&#xff0c;循环将继续运行&#xff1a;


$i&#61;1;
do
{$i&#43;&#43;;echo "The number is " . $i . "
";
}
while ($i<&#61;5);
?>

输出&#xff1a;

The number is 2
The number is 3
The number is 4
The number is 5
The number is 6

for 循环和 foreach 循环将在下一章进行讲解。

 

PHP 循环 - For 循环

循环执行代码块指定的次数&#xff0c;或者当指定的条件为真时循环执行代码块。



for 循环

for 循环用于您预先知道脚本需要运行的次数的情况。

语法


for (初始值; 条件; 增量){
要执行的代码;
}

参数&#xff1a;

  • 初始值&#xff1a;主要是初始化一个变量值&#xff0c;用于设置一个计数器&#xff08;但可以是任何在循环的开始被执行一次的代码&#xff09;。
  • 条件&#xff1a;循环执行的限制条件。如果为 TRUE&#xff0c;则循环继续。如果为 FALSE&#xff0c;则循环结束。
  • 增量&#xff1a;主要用于递增计数器&#xff08;但可以是任何在循环的结束被执行的代码&#xff09;。

注释&#xff1a;上面的初始值增量参数可为空&#xff0c;或者有多个表达式&#xff08;用逗号分隔&#xff09;。

实例

下面的实例定义一个初始值为 i&#61;1 的循环。只要变量 i 小于或者等于 5&#xff0c;循环将继续运行。循环每运行一次&#xff0c;变量 i 就会递增 1&#xff1a;

实例


for ($i&#61;1; $i<&#61;5; $i&#43;&#43;)
{echo "数字为 " . $i . PHP_EOL;
}
?>

输出&#xff1a;

数字为 1
数字为 2
数字为 3
数字为 4
数字为 5


foreach 循环

foreach 循环用于遍历数组。

语法


foreach ($array as $value)
{要执行代码;
}

每进行一次循环&#xff0c;当前数组元素的值就会被赋值给 $value 变量&#xff08;数组指针会逐一地移动&#xff09;&#xff0c;在进行下一次循环时&#xff0c;您将看到数组中的下一个值。

foreach ($array as $key &#61;> $value)
{要执行代码;
}

每一次循环&#xff0c;当前数组元素的键与值就都会被赋值给 $key 和 $value 变量&#xff08;数字指针会逐一地移动&#xff09;&#xff0c;在进行下一次循环时&#xff0c;你将看到数组中的下一个键与值。

实例

下面的实例演示了一个输出给定数组的值的循环&#xff1a;

实例


$x&#61;array("Google","Runoob","Taobao");
foreach ($x as $value)
{echo $value . PHP_EOL;
}
?>

 

输出&#xff1a;

Google
Runoob
Taobao

下面的实例演示了一个输出给定数组键与值的循环&#xff1a;

实例


$x&#61;array(1&#61;>"Google", 2&#61;>"Runoob", 3&#61;>"Taobao");
foreach ($x as $key &#61;> $value)
{echo "key 为 " . $key . "&#xff0c;对应的 value 为 ". $value . PHP_EOL;
}
?>

输出&#xff1a;

key 为 1&#xff0c;对应的 value 为 Google
key 为 2&#xff0c;对应的 value 为 Runoob
key 为 3&#xff0c;对应的 value 为 Taobao

 

 


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
author-avatar
星汇半岛车位销售
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有