初识PHP

news2024/11/30 14:52:21

一、格式

  1. 每行以分号结尾
<?php
 echo 'hello';
?>

二、echo函数和print函数

  1. 作用:两个函数都是输出内容到页面中,多用于代码调试。
<?php
echo "<h1 style='text-align: center;'>test</h1>";
print "<h1 style='text-align: center;'>test</h1>";
?>
  1. 效果图

image.png

三、注释符

  1. 单行注释
    1. //
# //
# 
# PhpStorm快捷键:Ctrl+/

<?php
// echo "<h1 style='text-align: center;'>test</h1>";
#  echo "<h1 style='text-align: center;'>test</h1>";
?>
  1. 多行注释
# /**/
# PhpStorm快捷键:Ctrl+Shift+/

<?php
/*
 * echo "<h1 style='text-align: center;'>test</h1>";
echo "hello"
*/
?>

四、运算符

  1. 加减乘除
<?php
echo 1+3 ;
echo '<br/>';
echo 6-1;
echo '<br/>';
echo 2*3 ;
echo '<br/>';
echo 6/2 ;
echo '<br/>';
?>
  1. 效果图:
    1. 疑问:2为什么在最底下

image.png

五、数据类型

  1. 类型汇总:
    1. String(字符串)
    2. Integer(整型)
    3. Float(浮点型)
    4. Boolean(布尔型)
    5. Array(数组)
    6. Object(对象)
    7. NULL(空值)
    8. Resource(资源类型)
  2. 示例代码:
<?php
echo "=====int=======";
echo "<br>";
echo 1; # 整型  数字型
echo "<br>";
var_dump(1); #var_dump用于查看值的数据类型
echo "<br>";
echo "=====string=======";
echo "<br>";
echo "1"; # 字符型
echo "<br>";
var_dump("1");
echo "<br>";
echo "=====float=======";
echo "<br>";
echo 1.1; # 浮点型
echo "<br>";
var_dump(1.1);
echo "<br>";
echo "=====boolean=======";
echo "<br>";
echo false; # 布尔型
echo "<br>";
var_dump(true);
echo "<br>";
echo "=====array=======";
echo "<br>";
$array = array('1','2','3'); # 数组
echo $array[0]; # 输出数组中下标为0的数据
echo "<br>";
var_dump($array);
echo "<br>";
echo "=====null=======";
echo "<br>";
$null = null;
echo $null; # 输出数组中下标为0的数据
echo "<br>";
var_dump($null);
echo "<br>";
echo "=====resource=======";
echo "<br>";


/*$c = mysql_connect();
echo get_resource_type($c) . "\n";
// 打印:mysql link

$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";
// 打印:file

$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
// 打印:domxml document*/

echo "<br>";
echo "=====object=======";
echo "<br>";

class Color{
    function print(){
        echo "this is color";
    }

}
$color = new Color();
$color->print();


?>


  1. 效果

image.png

六、变量

  1. 变量是用于存储信息的"容器",变量以 $ 符号开始
    1. 变量名必须以字母或者下划线字符开始
    2. 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
    3. 变量名不能包含空格
    4. 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
    5. 扩展
      1. 在上面的实例中,我们注意到,不必向 PHP 声明该变量的数据类型。
      2. PHP 会根据变量的值,自动把变量转换为正确的数据类型。
      3. 在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
  2. 示例
# 输出结果为:1
<?php
$num=1;
echo $num;
?>
  1. 强转数据类型
# 将字符串强转为整型
<?php
$num="1";
$num = (int)$num;
echo var_dump($num); # 结果为:int(1)
?>

七、判断语句

  1. If语句
# == 判断值
# === 判断值和数据类型
# 最后结果为 success
<?php
if(1==="1"){
    echo "fail1";
}
elseif (1===1){
    echo "success";
}
else{
    echo "fail2";
}
?>
  1. switch语句
# 结果为:1
<?php
$num =1;
switch($num){
    case 1:
        echo "1";
        break;
   case 2:
        echo "2";
        break;
    default:
        echo "error";
}
?>
  1. 示例:输入值并判断是否相等
# 输入11,返回success
# 输入其他值,返回error
<html >
<body>
<form action="test01.php" method="post">
    请输入值: <input type="text"   name="num">
    <input type="submit" >
</form>
</body>
</html>

<?php
$num = $_POST["num"];
if ($num==11){
    echo "success";
}
else{
    echo "error";
}
?>

八、循环语句

  1. for循环
<?php
for ($i = 0; $i < 10; $i++) {
    echo $i;
}
?>
  1. 效果图

image.png

  1. while循环
<?php
$index=0;
while($index<10){
    echo $index."<br>";
    $index++;
}

?>
  1. 效果图

image.png

九、基本函数

  • array()

  • 用于创建一个数组。

  • is_array()

    • 用于判断给定变量是否是数组类型,返回布尔值。
  • count()

    • 用于获取数组或对象的元素个数。
  • sizeof()

    • 与count()函数类似,用于获取数组或对象的元素个数。
  • in_array()

    • 用于检查一个值是否在数组中,返回布尔值。
  • array_search()

    • 查找数组中的键值是否存在,返回键名或false。
  • array_keys()

    • 返回数组中所有的键名。
  • array_values()

    • 返回数组中所有的值。
  • array_merge()

    • 用于合并一个或多个数组。
  • array_pop()

    • 返回数组中最后一个元素,并将其删除。
  • array_push()

    • 将一个或多个元素插入到数组末尾。
  • array_shift()

    • 返回数组中第一个元素,并将其删除。
  • array_unshift()

    • 将一个或多个元素插入到数组开头。
  • implode()

    • 用于将数组元素连接成字符串。
  • explode()

    • 用于将字符串按指定分隔符分割成数组。
  • str_replace()

    • 用于查找和替换字符串中某个子串。
  • substr()

    • 用于获取字符串的部分内容。
  • urlencode()

    • 用于将字符串转换为URL编码格式。
  • urldecode()

    • 用于将URL编码字符串转换为原始字符串。
  • htmlentities()

    • 用于将字符串中的HTML实体转换为原始字符。
  • htmlspecialchars()

    • 用于将特殊字符转换为HTML实体。
  • trim()

    • 用于去除字符串开头和结尾处的空格或其他字符。
  • nl2br()

    • 用于将换行符(\n)转换为HTML的换行标签()。
  • header()

    • 用于设置HTTP响应头信息。
  • session_start()

    • 用于启动一个新的或继续当前的会话。
  • $_SESSION

    • 用于在会话中存储和获取变量的值。
  • file_get_contents()

    • 用于获取文件的内容。
  • file_put_contents()

    • 用于将数据写入文件中。
  • fopen()

    • 用于打开文件或URL,返回文件句柄。
  • fclose()

    • 用于关闭打开的文件句柄。
  • fgets()

    • 用于从文件指针读取一行。
  • fgetcsv()

    • 用于从文件指针读取CSV文件中的一行并解析为数组。
  • fwrite()

    • 用于向文件中写入数据。
  • isset()

    • 用于检测变量是否设置并且有值,返回布尔值。
  • empty()

    • 用于判断变量是否为空或者是否包含值为0的元素,返回布尔值。
  • is_numeric()

    • 用于判断一个变量是否为数字类型,返回布尔值。
  • intval()

    • 用于将字符串转换为整数类型。
  • floatval()

    • 用于将字符串转换为浮点数类型。
  • strval()

    • 用于将一个值转换为字符串类型。
  • rand()

    • 用于生成一个随机数。
  • time()

    • 用于获取当前时间的时间戳。
  • date()

    • 用于获取当前日期和时间。
  • strtotime()

    • 用于将文本日期时间转换为Unix时间戳。
  • mail()

    • 用于发送电子邮件。
  • preg_match()

    • 用于在字符串中查找匹配的模式。
  • preg_replace()

    • 用于在字符串中搜索和替换匹配的模式。
  • md5()

    • 用于计算字符串的MD5哈希值。
  • sha1()

    • 用于计算字符串的SHA-1哈希值。
  • base64_encode()

    • 用于将文本字符串转换为base64格式。
  • base64_decode()

    • 用于将base64格式字符串解码为文本字符串。

十、 超级全局变量

  • PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
  • PHP 超级全局变量列表:
  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

十一、表单注册示例

  • 代码示例
<?php
$userNameError=$passwordError=$confirmPasswordError='';
$userName=$password=$confirmPassword='';
if(isset($_POST["registerBtm"])){
    $userName =outFormat( $_POST["userName"]);
    $password = outFormat($_POST["password"]);
    $confirmPassword =outFormat($_POST["confirmPassword"]);
    if(!empty($userName)){

        if(!empty($password)){
            if(!empty($confirmPassword)){
                if(userNameReg($userName)){
                    if(passwordReg($password)){
                        if($password == $confirmPassword){
                          echo "<script>alert('注册成功!')</script>";

                        }else{
                            $confirmPasswordError = "两次密码不一致";
                        }


                    }else{
                        $passwordError="字母、数字、下划线组合的8位密码";
                    }
                }else{
                    $userNameError="以字母开头,长度为8";
                }

            }else{
                $confirmPasswordError="请再次输入密码";
            }
        }else{
            $passwordError="请输入密码";
        }
    }else{
        $userNameError="请输入用户名";
    }
}
# 去除格式
function outFormat($value){
    $value=trim($value);
    $value=stripslashes($value);
    $value=htmlspecialchars($value);
    return $value;
}
/*
 - 以字母开头,长度为8的用户名
 - */
function  userNameReg($value)
{
    return preg_match("/^[a-zA-Z][a-zA-Z0-9_]{7}$/",$value)?true:false;
}
/*
 - 字母、数字、下划线组合的8位密码
 - */
function  passwordReg($value)
{
    return preg_match("/^[a-zA-Z0-9_]{8}$/",$value)?true:false;
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>

        *{
            padding:0;
            margin:0;
            /*border: 0;*/
        }
        body{
            background: #ffffff;

        }
        .box{
            box-shadow: 10px 10px 5px #f5f5f5;
            width:500px;
            height: 400px;
            border:1px solid #f5f5f5;
            border-radius: 20px;
            margin: 50px auto;
        }
        h3{
            text-align: center;
            padding-top: 20px;
        }
        .loginForm{
            padding-top: 100px;
            text-align: center;
        }
        .loginForm input{
            margin: 10px 0px;
        }

        .register{
            display: inline-block;
            color: #057070;
            cursor:pointer;
            transition: all 1s;
        }
        .register:hover{
            text-decoration: underline;
            transition: all 1s;
        }
    </style>l
</head>
<body>

<div class="box">
    <h3>注册</h3>
<!--
作用:请求自己的页面
参考:https://www.kancloud.cn/chunyu/php_basic_knowledge/973403
$_SERVER['PHP_SELF']             //当前正在执行脚本的文件名
htmlspecialchars():PHP中的一个字符串处理函数,用于将HTML标记转化为实体字符。
-->
    <form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post" class="loginForm">
        用户名:<input type="text" name="userName" value="<?php echo $userName?>">
           <span style="color:red;font-size: 10px">
                <?php echo $userNameError; ?>

           </span>
         <br/>&nbsp;&nbsp;&nbsp;码:<input type="password" name="password" value = "<?php echo $password ?>">
        <span style="color:red;font-size: 10px">
                <?php echo $passwordError; ?>

           </span>
        <br/>
        <span style="margin-left: -16px" >确认密码:</span>
        <input type="password" name="confirmPassword"  value = "<?php echo $confirmPassword?>">
        <span style="color:red;font-size: 10px">
                <?php echo $confirmPasswordError; ?>

           </span>
        <br/>
        <input type="submit"  value="注册" name="registerBtm">
    </form>

    <p style="text-align: center;font-size: 12px" ><a href="login.html" class="register">登录</a>
    </p>


</div>
</body>
</html>
<!--
isset():检测变量是否设置
empty(): 判断变量是否为空
    true1:为空
    false0:不为空
preg_match(表达式,变量名):执行正则表达式匹配
-->


  1. 效果图

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815244.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux网络(二)】网络基础之套接字编程

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux网络 1. 前言2. 端口号详…

vs、utf-8、utf-8bom乱码分析及实测

1、系统默认控制台命令行编码 windows命令行默认的编码是ANSI&#xff0c;中文系统下则就是GBK&#xff0c;GBK是对GB2312编码的扩展兼容GB2312&#xff0c;可以等同理解为就是GB2312。 2、vs2022默认新建项目编码 vs默认项目文件编码格式为UTF-8 BOM 默认字符集 Unicode 最终…

MNIST数据集导出

MNIST数据集导出 文章目录 MNIST数据集导出1、 MNIST数据集介绍2、 MNIST数据集下载2.1 使用Pytorch自带的MNIST数据集 3、 MNIST数据集解析3.1 训练集图片文件解析规则3.2 训练集标签文件解析规则3.3 测试集图片文件解析规则3.4 测试集标签文件解析规则 4、 MNIST数据集转图片…

动手学深度学习31 深度学习硬件 CPU和GPU

动手学深度学习31 深度学习硬件 CPU和GPU CPU和GPU主频 QA PPT&#xff1a; https://courses.d2l.ai/zh-v2/assets/pdfs/part-2_1.pdf 视频&#xff1a; https://www.bilibili.com/video/BV1TU4y1j7Wd/?p2&spm_id_frompageDriver&vd_sourceeb04c9a33e87ceba9c9a2e5f09…

nginx ws长连接配置

nginx ws长连接配置 http根节点下配上 map $http_upgrade $connection_upgrade {default upgrade; close;}如下&#xff1a; server服务节点下&#xff0c;后端接口的代理配置 proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connec…

2. 面向对象编程推导

1. 面向过程编程 面向过程编程(Procedure-Oriented Programming, POP): 是一种关注于解决问题步骤或过程的编程范式.面向过程编程核心思想: 将复杂问题分解为一系列简单, 可执行的步骤(即过程或函数), 并按照特定的顺序依次执行这些步骤, 直到问题得到解决. 每个步骤(过程或函…

compose for desktop

then 叠加修饰符功能的作用 val reusableModifier Modifier.fillMaxWidth().background(Color.Red).padding(12.dp)// Append to your reusableModifier reusableModifier.clickable { /*...*/ }// Append your reusableModifier otherModifier.then(reusableModifier)https:…

springboot物流管理系统-计算机毕业设计源码00781

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对物流管理系统等问题&#xff0c;对如何通过计…

时间处理获取交易日(考虑兼容性问题)

在获取交易日时间的处理上&#xff0c;出现了苹果14不兼容的问题&#xff0c;就这个问题记录下。 一、获取交易日的代码 封装了一个js文件&#xff0c;在untils目录下&#xff0c;先看代码&#xff0c;然后我讲下思路。 // 获取节假日数据 import { getCalendarHolidays } …

使用脚手架创建vue2项目(关闭eslint语法检查 、运行项目时自动打开网址、src文件夹简写方法)

使用脚手架创建vue2项目会默认安装的插件&#xff08;eslint) 这个插件是检查语法的。 假设我们在main.js中定义了一个变量&#xff0c;没有使用 eslint 就会检测出错误 &#xff08;事实是我们并没有写错而是eslint 给我们判断是错的&#xff0c;所以这样会很麻烦&#xff…

怎么监视员工电脑屏幕?电脑监控软件监控屏幕的六个步骤

监视员工电脑屏幕通常涉及使用专门的电脑监控软件&#xff0c;这些软件设计用于帮助企业管理人员合法合规地监督员工的工作状态、提高工作效率并确保信息安全。以下是实施员工电脑屏幕监视的一般步骤和注意事项&#xff1a; 1. 选择合适的监控软件 首先&#xff0c;选择一款适…

Idea多线程调试

在 IntelliJ IDEA 中调试多线程应用程序可能会有些复杂&#xff0c;因为多个线程可能会同时运行和交互。不过&#xff0c;IDEA 提供了一些强大的工具来帮助你进行多线程调试。以下是一些关键步骤和技巧&#xff0c;帮助你有效地调试多线程应用程序&#xff1a; 创建一个示例多线…

查分易成绩查询入口

今天我来分享一个老师超实用的小技巧&#xff0c;那就是如何用查分易来打造一个专属的成绩查询入口哦&#xff01;无论是我们勤奋的学生们&#xff0c;还是关心孩子学习的家长们&#xff0c;都可以轻松查到自己的成绩信息。来来来&#xff0c;让我来一步步教你怎么用查分易搞定…

优雅迷人的小程序 UI 风格

优雅迷人的小程序 UI 风格

基于Python的信号处理(包络谱,低通、高通、带通滤波,初级特征提取,机器学习,短时傅里叶变换)及轴承故障诊断探索

Python是一种广泛使用的解释型、高级和通用的编程语言&#xff0c;众多的开源科学计算软件包都提供了Python接口&#xff0c;如计算机视觉库OpenCV、可视化工具库VTK等。Python专用计算扩展库&#xff0c;如NumPy、SciPy、matplotlab、Pandas、scikit-learn等。 开发工具上可用…

20240612每日前端-------vue3实现聊天室(一)

先上效果图 讲讲布局设计 聊天室大致分三块&#xff1a; 左边导航右边聊天界面主界面 单独调整一下样式&#xff1a;外层friend-box先调整布局为flex&#xff0c;这样方便进行自适应布局&#xff0c;增加背景色为白色&#xff0c;设置边框圆角使得外观更加美观&#xff0c;使…

树状数组:解锁快速排名的高效利器

文章目录 引言一、快速排名问题概述二、树状数组的应用树状数组概述数据结构初始化查询排名更新排名示例代码 总结参考 引言 在大规模数据排名问题中&#xff0c;树状数组可以用来高效地实现快速排名查询和更新操作&#xff0c;特别是在处理动态变化的数据集时。使用树状数组可…

如何舒适的使用VScode

安装好VScode后通常会很不好用&#xff0c;以下配置可以让你的VScode变得好用许多。 VScode的配置流程 1、设置VScode中文2、下载C/C拓展&#xff0c;使代码可以跳转3、更改编码格式4、设置滚轮缩放5、设置字体6、设置保存自动改变格式7、vscode设置快捷代码 1、设置VScode中文…

Android studio如何导入项目

打开解压好的安装包 找到build.gradle文件 打开查看gradle版本 下载对应的gradle版本Index of /gradle/&#xff08;镜像网站&#xff09; 下载all的对应压缩包 配置gradle的环境变量 新建GRADLE_HOME 将GRADLE_HOME加入到path中 将项目在Android studio中打开进行配置 将gr…

手撕设计模式——计划生育之单例模式

1.业务需求 ​ 大家好&#xff0c;我是菠菜啊。80、90后还记得计划生育这个国策吗&#xff1f;估计同龄的小伙伴们&#xff0c;小时候常常被”只生一个好“”少生、优生“等宣传标语洗脑&#xff0c;如今国家已经放开并鼓励生育了。话说回来&#xff0c;现实生活中有计划生育&…