PHP

PHP语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。

  1. PHP 脚本以 <?php 开头,以 ?> 结尾。
  2. PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来,PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。
  3. PHP有两种在浏览器输出文本的基础指令:echo 和 print。
  4. 注释:
<?php
// 这是 PHP 单行注释
# 这也是单行注释
/*
这是 
PHP 多行
注释
*/
?>

PHP 变量

  1. 变量以 $ 符号开始,后面跟着变量的名称

变量名必须以字母或者下划线字符开始 , 只能包含字母数字字符以及下划线, 不能包含空格, 是区分大小写的, $y 和 $Y 是两个不同的变量。

  1. PHP 有四种不同的变量作用域:

local (局部)
global(全局)
static(静态)
parameter

<?php
$x=5; // 全局作用域

function myTest() {
  $y=10; // 局部作用域
  echo "<p>测试函数内部的变量:</p>";
  echo "变量 x 是:$x";
  echo "<br>";
  echo "变量 y 是:$y";
} 

myTest();

echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>

运行结果
运行结果

  • global 关键字用于函数内访问全局变量。
    在函数内调用函数外定义的全局变量,需要在函数中的变量前加上 global 关键字。
<?php
$x=5;
$y=10;
 
function myTest()     
{
    global $x,$y;    //或 $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
    $y=$x+$y;
}
 
myTest();
echo $y; // 输出 15
?>
  • Static 作用域
    当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字:
<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
    echo PHP_EOL;    // 换行符
}
 
myTest();
myTest();
myTest();
?>  //012
  1. PHP 大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。

4.echo , print 和 print_r的区别:

echo - 可以输出一个或多个字符串
print - 只能输出简单类型变量的值,如int,string
print_r - 可以输出复杂类型变量的值,如数组,对象

提示:echo输出的速度比print快,echo是PHP语句,没有返回值,print和print_r是PHP函数,函数有返回值。
print返回值为1(int类型),print_r返回值为true(bool类型)。

  • echo
?php
$txt1="Learn PHP";
$txt2="w3cschool.cn";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br />";
echo "Study PHP at $txt2";
echo "My car is a {$cars[0]}";
echo "<h2>PHP 很有趣!</h2>";
echo "Hello world!<br>";
?>                    
/*
Learn PHP
Study PHP at w3cschool.cn
My car is a Volvo
*/

在这里插入图片描述

  • print_r

print_r 显示关于一个变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。
如果给出的是 array,将会按照一定格式显示键和元素。object与数组类似。
使用时必须加上括号:print_r()。
小提示:print_r()会将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

  • PHP var_dump() 函数返回变量的数据类型和值:
<!DOCTYPE html>
<html>
<body>

<?php 
$x = 5985;
var_dump($x);
echo "<br>"; 
$x = -345; // 负数
var_dump($x);
echo "<br>"; 
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>   

</body>
</html>

  • PHP 数据类型

  • 类型比较

  • PHP 常量

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

该函数有三个参数:

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

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

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


  • PHP 字符串函数
  1. 并置运算符
    并置运算符 (.) 用于把两个字符串值连接起来。
运算符名称例子
.串接$txt1 = “Hello” $txt2 = $txt1 . " world!" 现在 $txt2 包含 “Hello world!”
.=串接赋值$txt1 = “Hello” $txt1 .= " world!" 现在 $txt1 包含 “Hello world!”
<!DOCTYPE html>
<html>
<body>

<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world! 

echo "<br>";

$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world! 
?>   

</body>
</html>
  1. strlen() 函数
    strlen() 函数返回字符串的长度(字符数)。
<?php 
echo strlen("Hello world!"); 
?>  //输出12

  1. strpos()函数
    strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
    如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
<?php 
echo strpos("Hello world!","world"); 
?>  //输出6,第一个从0开始

  • str_word_cuont()函数
    str_word_count() 函数对字符串中的单词进行计数
<?php
echo str_word_count("Hello world!"); // 输出 2
?>
  • strrev() 函数
    strrev函数反转字符串:
<?php
echo strrev("Hello world!"); // 输出 !dlrow olleH
?>
  • str_replace() 函数
    用一些字符串替换字符串中的另一些字符。
<?php
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
?>

PHP运算符

在 PHP 中,赋值运算符 = 用于给变量赋值。

  • 整除运算符intdiv()
    PHP7+ 版本新增整除运算符 intdiv(),使用实例:
<?php
var_dump(intdiv(10, 3));
?>  //int(3)
a .= ba = a . b连接两个字符串
  • PHP 递增/递减运算符
运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
– x预递减x 减 1,然后返回 x
x –后递减返回 x,然后 x 减 1
<?php
$x=10; 
echo ++$x; // 输出11
 
$y=10; 
echo $y++; // 输出10
 
$z=5;
echo --$z; // 输出4
 
$i=5;
echo $i--; // 输出5
?>
  • PHP 比较运算符
    特殊的
运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5===“5” 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y绝对不等于如果 x 不等于 y,或它们类型不相同,则返回 true5!==“5” 返回 true
<!DOCTYPE html>
<html>
<body>

<?php
$x=100; 
$y="100";

var_dump($x == $y); // returns true because values are equal
echo "<br>";
var_dump($x === $y); // returns false because types are not equal
echo "<br>";
var_dump($x != $y); // returns false because values are equal
echo "<br>";
var_dump($x !== $y); // returns true because types are not equal
echo "<br>";

$a=50;
$b=90;

var_dump($a > $b);
echo "<br>";
var_dump($a <  $b);
?>   

</body>
</html>
  • PHP逻辑运算符
运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6 y=3 (x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6 y=3 (x== 6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6 y=3 (x== 6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6 y=3 (x < 10 && y > 1) 返回 true
xlly如果 x 和 y 至少有一个为 true,则返回 truex=6 y=3 (x==5
! x如果 x 不为 true,则返回 truex=6 y=3 !(x==y) 返回 true
  • PHP 数组运算符
运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true
<!DOCTYPE html>
<html>
<body>

<?php
$x = array("a" => "red", "b" => "green"); 
$y = array("c" => "blue", "d" => "yellow"); 
$z = $x + $y; // union of $x and $y
var_dump($z);
echo "<br>";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x <> $y);
echo "<br>";
var_dump($x !== $y);
?>   

</body>
</html>

运行结果:

array(4) { ["a"]=> string(3) "red" ["b"]=> string(5) "green" ["c"]=> string(4) "blue" ["d"]=> string(6) "yellow" } 
bool(false) 
bool(false) 
bool(true) 
bool(true) 
bool(true)
  • 三元运算符

语法格式:

(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

<?php 
$test = 'w3cschool在线教程'; 
// 普通写法 
$username = isset($test) ? $test : 'nobody'; echo $username, PHP_EOL; 

// PHP 5.3+ 版本写法 
$username = $test ?: 'nobody'; echo $username, PHP_EOL; 
?>

注意:PHP_EOL 是一个换行符,兼容更大平台。

在 PHP7+ 版本多了一个 NULL 合并运算符 ??,实例如下:

    <?php
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 类似的三元运算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
  • 组合比较符(PHP7+)
    PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

语法格式如下:

$c = $a <=> $b;

解析如下:

如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 $c 的值为 -1。
  • 运算符优先级
    运算符优先级中,or 和 ||,&& 和 and 都是逻辑运算符,效果一样,但是其优先级却不一样。
<?php
// 优先级: &&  >  =  >  and
// 优先级: ||  >  =  >  or
 
$a = 3;
$b = false;
$c = $a or $b;
var_dump($c);          // 这里的 $c 为 int 值3,而不是 boolean 值 true
$d = $a || $b;
var_dump($d);          //这里的 $d 就是 boolean 值 true 
?>

输出结果:

int(3)
bool(true)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值