当前位置: 首页 > news >正文

PHP开发入门

PHP官网:PHP: Hypertext Preprocessor

apache官网:https://httpd.apache.org/

 一、搭建PHP环境

  1. 下载apache

进入官网点击download

 选择下载windows版本文件

点击进入下载界面

点击下载64位版本文件

下载后解压文件

解压文件后进入 D:\httpd-2.4.59-240404-win64-VS17\Apache24\bin

将bin目录下的地址添加到环境变量中

添加环境后进入 D:\httpd-2.4.59-240404-win64-VS17\Apache24下的conf文件夹用编辑器打开httpd.conf

修改和添加文件中的相关配置

//Apache24文件路径,根据自己文件的位置自行更改
Define SRVROOT "D:\httpd-2.4.59-240404-win64-VS17\Apache24"//添加如下配置
#加载PHP(在下载完PHP后添加)
LoadModule php_module 'D:/php/php8apache2_4.dll'
#加载PHP配置文件
PHPIniDir 'D:/php'
#分配给PHP
AddType application/x-httpd-php .php
<IfModule unixd_module>

至此apache安装配置完成,如果本地服务器未开启,在cmd中运行httpd命令即可开启

下载PHP

进入官网点击Download

在新的页面点击下载windows版本文件

 选择x64Thead Safe版本

解压后将php.exe所在目录添加到环境变量中,将php8apache2_4.dll配置到apache配置文件中即可

二、VS code插件配置

下载完成后进行尝试

三、基本语法

在网页中使用php

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><b><?php//在此写php代码?></b></body>
</html>

变量与常量

 定义变量
$var1= 1;
$var2;
删除变量
unset( $var1 );
定义常量
//定义常量方式一
define("PI", 3.14 );
echo PI;
// 方式二
const PII = 3;
访问常量
// 访问常量
echo constant('PII');// 访问常量
echo constant('PII');
PHP输出
//方式一echo PI;
//方式二
print(PI);
//区别:echo无返回值,print有返回值
系统常量
// 系统常量
echo '<hr/>',PHP_VERSION,'<br/>',PHP_INT_SIZE,'<br/>',PHP_INT_MAX,'<br/>';

 特殊常量

// 特殊常量
echo __DIR__;//当前执行脚本的绝对路径
echo __FILE__;//当前执行脚本所在电脑的绝对路径
echo __LINE__;//当前所属的行数
echo __NAMESPACE__;//当前所属的命名空间
echo __CLASS__;//当前所属的类
echo __METHOD__;//当前所属的方法

 数据类型

 整型
$int1 = 10;
浮点型
$float = 1.1;
布尔类型
$bool = true;
字符串类型
$str1 = '123'
数组类型
$array = [1, 2, 3, 4, 5];
对象类型
<?php
// 定义一个类
class Person {// 类属性public $name;public $age;// 类方法public function sayHello() {echo "Hello, my name is " . $this->name . " and I am " . $this->age . " years old.";}
}// 创建一个Person对象的实例
$person = new Person();// 设置对象属性
$person->name = "Alice";
$person->age = 30;// 调用对象方法
$person->sayHello(); // 输出: Hello, my name is Alice and I am 30 years old.
?>
Null类型
<?php$var = null;?>
资源类型
<?php$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
?>

类型转换和判断

<?php// 类型转换$a = '1.1';$b = '1.1';// 自动转换echo $a + $b;                // 强制转换echo '<br/>',(float)$a,'<br/>',(float)$b;// 类型判断echo var_dump(is_string($a));echo var_dump(is_float($a));echo var_dump(is_int($a));// 获取变量的类型echo gettype($a),'<hr/>';// 设定数据类型var_dump(settype($a,'string'));echo gettype($a),'<hr/>';?>

运算符

<?php$var1 =10;$var2 = 11;echo $var1 > $var2; //大于echo $var1 >= $var2; //大于等于echo $var1 < $var2; //小于echo $var1 <= $var2; //小于等于echo $var1 != $var2; //不等于echo $var1 == $var2; //等于echo $var1 === $var2; //全等于echo $var1 !== $var2; //不全等于echo $var1 && $var2; //与echo $var1 || $var2; //或echo $var1 = !($var2); //取反echo $var1 .= $var2; //连接运算符@($var1%$var2) //错误抑制
?>

三目运算

<?php$var1 =10;$var2 = 11;$var3 = $var1 ==10?"good":"你好";
?>

自操作 

<?php$var1 =10;$var2 = 11;$var1++; //自加1,先赋值后加1++$var2; //自加1,先加1后赋值
?>

四、循环判断结构

if语句

<?php$var1 =11;$var2 = 11;if($var1==10) echo "<h1>1</h1>";elseif($var1 == $var2) echo "<h1>2</h1>";else "<h1>错误</h1>";
?>

switch语句 

    <?php$var1 = 11;$var2 = 11;switch ($var1) {case 11:echo "<h1>11</h1>";break;case 12:echo "<h1>11</h1>";break;case 13:echo "<h1>11</h1>";break;case 14:echo "<h1>11</h1>";break;}?>

 For循环

<?php$var1 = 11;$var2 = 11;for($var3=0;$var3<10;$var3++){echo "<h1>{$var3}</h1>";}?>

 while和do...while

<?php$var1 = 11;$var2 = 11;while($var1){$var1++;if($var1==15) break;echo "\$var1 = $var1";}?>
<?php$var1 = 11;$var2 = 11;do{$var1++;echo $var1;}while($var1==11);?>

 

 

 

相关文章:

  • Forth Python语言:深度解析其四维、五维、六维与七维之奥秘
  • echart扩展插件词云echarts-wordcloud
  • mysql去除重复数据
  • pas编程语言:深度剖析与实用技巧
  • 记一次 .NET某工业设计软件 崩溃分析
  • 并发任务的进化之旅
  • 排序方法——堆排序
  • Qt实现窗口失去焦点抖动功能
  • 在 Kubesphere 中开启新一代云原生数仓 Databend
  • 基于51单片机的超声波测距—数码管显示
  • sqliteSQL基础
  • 理解lambda表达式
  • 在本地电脑中如何用命令操作远程服务器上的数据库
  • [力扣题解] 28. 找出字符串中第一个匹配项的下标
  • 【算法】模拟算法——Z字形变换(medium)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Bootstrap JS插件Alert源码分析
  • docker容器内的网络抓包
  • ES6系统学习----从Apollo Client看解构赋值
  • express如何解决request entity too large问题
  • Javascript 原型链
  • Joomla 2.x, 3.x useful code cheatsheet
  • js面向对象
  • mysql 5.6 原生Online DDL解析
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • nodejs实现webservice问题总结
  • Protobuf3语言指南
  • Python - 闭包Closure
  • Quartz初级教程
  • React组件设计模式(一)
  • sessionStorage和localStorage
  • 阿里云Kubernetes容器服务上体验Knative
  • 阿里云应用高可用服务公测发布
  • 复习Javascript专题(四):js中的深浅拷贝
  • 那些被忽略的 JavaScript 数组方法细节
  • 你不可错过的前端面试题(一)
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一天一个设计模式之JS实现——适配器模式
  • 主流的CSS水平和垂直居中技术大全
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #etcd#安装时出错
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $.ajax()
  • (23)Linux的软硬连接
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(上)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .Net 路由处理厉害了
  • .net6使用Sejil可视化日志
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET开源快速、强大、免费的电子表格组件