php2

1.什么是常量?

  常量可以理解为值不变的全局的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。PHP中的常量分为自定义常量和系统常量

使用define()函数来定义常量:

第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,不带美元符号。 第二个参数“value”为必选参数,它是常量的值 第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。

 

define("PI",3.14,true);
var_dump(PI);//3.14
var_dump(pi);//3.14
$a="pi";
$b=pi;
var_dump($b);//3.14
var_dump($a);//pi
echo constant($a);//3.14

 

 

 

define("PI",3.14,true);
var_dump
($b);//3.14 var_dump($a);//pi echo constant($a);//3.14 if (!defined("pi")) { define("PI",3.1415726,true); } echo pi;//3.14

2.php运算符

     算数运算符

  * 赋值运算符

  * 比较运算符

  * 逻辑运算符

  * 三元运算符

三元运算符

  (“?:”)三元运算符也是一个比较运算符,对于表达式

  (expr1)?(expr2):(expr3),如果expr1的值为true,则此表达式的值为expr2,否则为expr3。

$c=1;
$d=2;
$e=5;
echo $c.=$d;//12
echo ($d<$c || $d<$e)?'输入正确':'输入错误';//输入正确

3.php语法结构

  顺序结构(代码按照顺序执行结构)

  分支结构(选择结构)(if、if else、if elseif else、switch等)

  循环结构(for、do while()等)

 4.PHP超全局变量

  超全局变量在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。

  PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

  (1)$_GET 变量是一个数组,内容是由 GET 方法发送的变量名称和值

    $_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制

复制代码
<?php

  print_r('<pre>');
  print_r($_GET);

?>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="" method="get"> <input type="text" name="username"> <input type="text" name="password"> <input type="submit" value="提交"> </form> <a href="abc.php?a=123&b=456">登录</a> </body> </html>
复制代码

(2)$_POST变量是一个数组,用于收集来自 post 的表单中的值

    安全性高、POST方法不依赖于URL,不会显示在地址栏。该方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端无法看到该过程。

(3)$_SERVER 是一个包含了诸如头信息(header) 、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建

  练习:写一个判断请求方式的IS_POST常量

define('IS_POST',$_SERVER['REQUEST_METHOD']=='POST'?true:false);
if (IS_POST) {
    echo "<script>alert('是post请求');</script>";
}else{
    echo "<script>alert('不是post请求');</script>";
}

(4)$request

    $_REQUEST 变量用于收集HTML表单提交的数据, $_REQUEST不是一个函数,它是一个超全局变量,里面包括有:

     $_GET

     $_POST

    $_COOKIE

      但是用$_REQUEST()比较$_GET, $_POST, $_COOKIE执行效率相对较低!

(5)其他超全局变量:

   $GLOBALS - 引用全局作用域中可用的全部变量

   $_FILES - 存储各种与上传文件有关的信息

  $_ENV - 一个包含服务器端环境变量的数组

   $_COOKIE - 用于取回 cookie 的值

   $_SESSION - 用于取回 session 的值

5.函数

  function 函数名(参数1,参数2,…){ //内容区域 return //返回值(如果需要) }

  注意:函数命名时不可以使用已经声明过的函数或者PHP内置的函数名称

  当我们创建了自定义函数,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。

复制代码
function sum($a,$b){
    return $a+$b;
}
echo sum(2,3);//5
if (!function_exists('sum')) {//若不写这个判断,重名后会报错
    function sum($a,$b){
        return $a+$b;
    }
}
echo sum(4,5);//9
复制代码

  如果函数内部没有使用return返回值时函数返回值为null

  * 函数无论被调用多少次,函数只被编译一次  

复制代码
function abc(){
    $a=1;
    echo $a;
    $a++;
    echo '<br>';
}
abc();//1
abc();//1
abc();//1
复制代码

 * 函数名不区分大小写,注意规范

  在函数外声明的全局变量,函数内无法直接使用全局变量

  

$b=123;
function sum(){
    echo $b;
}
sum();//报错

  传参可以使用外部变量

  

$b=123;
function sum($c){
    echo $c;
}
sum($b);//123

 

  内部变量改变不影响外部调用

$c=34;
function a(){
    $c=23;
    echo $c;
}
a();
echo '<br>';//23
echo $c;//34

 

 

  函数参数的传址赋值,内部变量发生改变外部也随之改变 

  

$d=12;
function b(&$d){
    $d='23457';
    echo $d;

}
b($d);//23457
echo $d;//23457

  我们可以使用global引入外部变量来使用(不推荐)

  

$b=56;
function sum(){
    global $b;
    echo $b;
}
sum();

 

  函数中还可以定义静态变量,值将会保存在内存中

复制代码
function abc(){
    static $a=1;
    echo $a;
    $a++;
    echo '<br>';
}
abc();//1
abc();//2
abc();//3
复制代码

6.php代码复用

  include 和 require

  *就像把文件粘贴到使用函数的地方

  *include 和 require 的区别在于当处理错误时include产生警告错误程序继续进行,require产生致命错误程序停止

include '123.php';//找不到文件,报错
echo '123';//123
require '123.php';//找不到文件报错,无法进行其他操作
echo '123';//报错

  include_once 和 require_once

    与include 和 require类似,区别在于如果该代码被引用超过一次后就不再引用,避免了函数重复定义,变量重新赋值

7.php抑错符

  PHP中提供了一个错误控制运算符“@”,对于一些可能会在运行过程中出错的表达式时,我们不希望出错的时候给客户显示错误信息,于是,可以将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉; 错误控制前缀“@”不会屏蔽解析错误的信息,不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等

 

posted @   赛赛大人  阅读(344)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
点击右上角即可分享
微信分享提示