首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP7-1:从0开始入门学习

PHP7-1:从0开始入门学习

作者头像
程序员海军
发布于 2021-10-11 03:10:05
发布于 2021-10-11 03:10:05
2.2K00
代码可运行
举报
文章被收录于专栏:前端笔记ing前端笔记ing
运行总次数:0
代码可运行

跟读者说的一些话

身为前端程序员,我们工作中每天做的事情最频繁的就是,写界面,然后根据后端的api来实现接口的处理。根据UI设计稿完成网站的设计。其实前端的领域很多,不同的领域又需要学习对应的框架,不断的踩坑,来熟练的使用框架实现网站的建设。 前端接触多了,你可能也会好奇后端怎么写api接口,它们怎么把数据封装好传递给你的?我们一直做的是接口的接收处理,不了解如何制作接口? 想要开始学习制作网站api或者app api,那么面临着就是选择 后端语言 ? 我前段时间做过一个调研: 前端程序员该如何选择后端语言? 热门后端语言如下: Java PHP Node.js Python Go .NET …. 至于选择哪门语言学习,取决于自己的需求, 2020 前端程序员Node.js 已成必须,不管之前有没有了解,现在必须学习了。 至于为什么选择PHP,因为它在Web领域已经战斗很多年了,社区生态已经很完善,而且是弱类型语言,前端上手会容易点。在这,就不讨论其它后端语言了。 那么,让我们一起开始PHP之旅吧。

PHP 之旅 开始

环境搭建

wampserve 下载

IDE

VScode PhpStorm

虚拟主机

安装好虚拟环境,就可以开发PHP 了, 在开始一个新的项目时,项目文件都放在www 目录下进行访问,它会默认访问 index.php 。 当创建了新的项目 Test 文件夹/ index.php , 那么访问时,就得通过 http://localhost/test/ 进行访问, 有种方便得访问方法, 建立虚拟主机, 点击 wanp -----> your VirtualHosts -------> VirtualHosts 建立虚拟主机 进行绑定, 1.访问站点名称 2.访问路径 3. 建立虚拟主机 4.重启服务器 5. 直接通过 站点名称进行访问 (test.cms)

基础语法

访问外部变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php 
 $name = 'HELLO';
// 第二种 传递参数
 function getName($test){
    //  echo $GLOBALS['name'];   第一种访问方法  $GLOBALS
    echo $test;
     // $GLOBALS $name   第三种

 }
 getName($name)
 ?>
超全局变量可以全局访问

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV
常用函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var_dump()函数用于输出变量的相关信息。

isset(变量)  检测变量是否被定义

strlen(变量)   变量的长度

mb_srtlen(变量, 字体类型)     变量的长度

strtolower()   转小写

strtoupper()  转大写

ucwords()   每个首字母变大写

ucfirst()   首字母大写

explode('拆分格式',变量)  字符串拆分

implode(':',$name);     字符串合并

mb_substr(变量,开始索引, 结束索引,-数位末尾)   字符串截取
static 静态变量 持久保存变量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php 

 function getAge(){
    //  echo $GLOBALS['name'];

//   static 会持久保存 该变量得值 . 第一次执行完, 它得值是 23, 第二次调用时,它会在23 得基础进行运算
   static  $age = 22;
    $age = $age + 1;
    return $age;
 }

echo getAge();  //23
echo getAge();  //24
 ?>
常量定义 defin const
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
define('NAME','小米');
const job = '是一家互联网企业';
echo NAME.job
小结

变量在PHP 中定义了,想在局部访问,可以通过以下三种方法进行访问

  1. GLOBALS[′name′]</li><li>函数传入参数</li><li>GLOBALS $name

常量 定义两种方法:

  1. const
  2. define

常量定义后,可以直接在局部使用

== 与 === 区别

== 表示 统一类型进行比较 === 表示类型和值一样才能相等

?? 与 ?:与别

?? 检测变量 1.值不能为空 2. 变量是否为空 echo var_dump(objs∗=∗null;echovardump(objs??'没有值') //没有值 ?: 三元表达式

include 加载模块 require 强加载
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//include  文件
if( !@include 'test.html') {
    include 'default.html';
}


//require:  加载文件 和 必须的内库
require('demo.html') 如果demo.html 不存在,直接报错,截止执行下面程序

函数模块

函数传值 and 传址 区别

传址 :传递的地址, 传值:传递的参数变值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$age = 22;
//传址
*function* getAge(*&*$age) {

    *++*$age;

   echo $age;

}

getAge($age); *//23* 

echo $age; *//23* 


//传值

*function* getAges($age){

    *++*$age;

    echo $age;

}

getAge($age); *//23* 

echo $age; *//22*
函数参数解构赋值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getSum(...$args){
   return array_sum($args);
}
echo  getSum(1,2,3,4,5);
函数默认参数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getInfo($names = '漳卅') {
    echo $names;
}
getInfo();
函数参数指定类型 严格模式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 使用严格模式后, 参数必须传递指定参数的类型值
declare(strict_types = 1);


function getMessage(int $age,String $name){
    echo '年龄为'.$age.'。姓名为:'.$name;
}

getMessage(22,'张三');
函数返回值约束
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function get_userName(): String {
    return '老王来了';
}

function get_password(): int {
    return 111111;
}

//  返回值  为 null  或者 String 时,使用 ?String
function get_Email(): ?String {
    return null;
}
//  没有返回值 使用 void
function get_Sex(): void {
    echo '无返回值使用';
}

数组玩法

基本数组和关联数组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 关联数组
$arr = ['name'=> '张三','age' => 22];

//基本数组 

$arrs = [1,2,3,4];
数组遍历方法 list foreach
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$arr = [
    ['name'=> '张三','age' => 22],
    ['name'=> '小红','age' => 12],
];
//list 遍历
while(list('name' => $name,'age' => $age) = current($arr)) {
    echo "name:{$name},age:{$age}"."<hr/>";
    next($arr);
}

//foreach
foreach($arr as $key => $item) {
    echo $item['name']."<hr/>";
}
数组常用方法

array_shift() 移除数组顶层数据

array_unshift() 向数组顶层添加数据

array_push() 向数组尾部添加元素

array_pop() 移除数组元素

array_values() 取数组元素值

count() 统计数量

array_map(function(item){},数组变量) 数组遍历 可以对数组做修改

时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
// 时间


// 设置中国时区
date_default_timezone_set('PRC');
// 时间转时间戳
// 1583843402  数据库存储使用,可以存储ISO格式
$sjc = strtotime('2020-3-10 12:30:02');
echo $sjc."<hr/>";


// 将时间戳转换为ISO格式时间  2020-03-10 12:30:02
echo date('Y-m-d H:i:s',$sjc)."<hr/>";

// 获取当前时间戳
$nows = strtotime('NOW');
echo $nows."<hr/>";
echo date('Y-m-d H:i:s',$nows)."<hr/>";


// 截止到期时间:  当前时间到 增加的时间进行比对
//2020-03-09 16:03:24   -------- 2021-03-09 16:03:24
echo date('Y-m-d H:i:s',strtotime("1year"))."<hr/>"; // 加了一年




// DateTime()类的 使用
$nowTime = new DateTime(); // 实例化DateTime 对象是获取的当前时间

// 把当前时间转换为时间戳  format('U')
echo $nowTime -> format('U')."<hr/>"; 
echo date('Y-m-d H:i:s')."<hr/>";


// 时间的增加 和减少,  应用业务类似 VIP会员到期时间

// 在某个时间段增加这么多天 用   DateInterval()
//天用D隔开  时用T隔开  M分
$times = new DateTime(); 
$times-> format('Y-m-d H:i:s');
$interval = new DateInterval('P10DT10H10M');  //增加10天10小时10分
$times-> add($interval);
echo $times -> format('Y-m-d H:i:s').'增加时间'."<hr/>";

$times-> sub($interval);
echo $times -> format('Y-m-d H:i:s').'减少时间'."<hr/>";

以上是PHP7的 基础语法,通过本章的学习,可以对PHP有大体的认识。本章有的语法没有介绍到,学习过其他语言的话,很快会上手的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端自学社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mysql优化系列(1)--Innodb引擎下mysql自身配置优化
1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。 2.之所以选用innodb作为存储引擎的
洗尽了浮华
2018/01/23
2.6K0
Zabbix 系统到底应该怎样优化?
分布式架构: Server-Proxy-Agentd模式。 说明:Zabbix分布式架构,常用于监控主机比较多的情况下,使用Zabbix Proxy进行分布式监控,有效的减轻了Zabbix Server端的压力。
用户8824291
2022/02/25
1K0
MySQL配置文件配置
虚拟机环境:VirtualBox 6.0.24 操作系统:Oracle Linux Server release 6.5 x86_64 MySQL版本:5.7.33
全栈程序员站长
2022/08/22
6.3K0
docker封装mysql镜像
一、概述 直接使用官方的镜像 docker pull mysql:5.7 但是mysqld.cnf并没有优化,还是默认的。 二、封装镜像 创建目录 # dockerfile目录 mkdir -p /opt/dockerfile/mysql # 持久化目录 mkdir -p /data/mysql/data /opt/dockerfile/mysql 目录结构如下: ./ ├── dockerfile ├── mysqld.cnf └── run.sh dockerfile FROM mysql:5.7 AD
py3study
2020/03/17
1.7K0
Docker 使用Docker创建MySQL容器
说明:如果不执行该步骤,执行创建MySQL容器时会自动拉取镜像:docker pull mysql:latest。
授客
2021/05/19
1.4K0
MySQL 8.0 需要调整哪些参数
首先列出一个 8.0 my.cnf 的实例,这个只针对普通的单实例或者主从环境,对于其他环境,比如 MGR,可能有更多的一些参数需要调整。并且也不是最完整,最终要根据自己实际环境进行调整。
数据库交流
2022/06/15
1.9K0
麒麟 V10 SP2 系统 二进制包安装MySQL 8.0.30
Select Operating System 选择Linux-Generic,Select OS Version 中有两选择,第一个是选择glibc2.12(X86_64),第二个是选择glibc2.17(X86_64)
Kevin song
2022/11/19
2.6K0
麒麟 V10 SP2 系统 二进制包安装MySQL 8.0.30
Docker-compose封装mysql并初始化数据以及redis
现有一台服务器,需要部署mysql和redis。其中mysql容器,需要在第一次启动时,执行sql文件。
py3study
2020/04/24
5.7K0
【详解】MySQL8.xmy.cnf文件配置
​​my.cnf​​ 文件是 MySQL 数据库的重要配置文件之一,它包含了 MySQL 服务器的启动参数和运行时配置。正确地配置 ​​my.cnf​​ 文件可以显著提升数据库的性能、稳定性和安全性。本文将详细介绍 MySQL 8.x 版本中 ​​my.cnf​​ 文件的基本结构、常见配置项及其作用。
大盘鸡拌面
2025/01/11
7980
Linux下MySQL多实例的安装部署
MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:
星哥玩云
2022/08/17
1.5K0
Linux下MySQL多实例的安装部署
MySQL性能参数配置总结
以下List是我们常见的MySQL参数配置,这个参数对提高实例的性能大有裨益。 其中 建议设置值,仅供参考,需要根据自己的业务场景和硬件资源仔细推敲。 参数 设置说明 建议设置值 lower_case_table_names 大小写敏感:此参数不可以动态修改,必须重启数据库:0.表名存储为给定的大小和比较是区分大小写的1.表名存储在磁盘是小写的,但是比较的时候是不区分大小写 2.表名存储为给定的大小写但是比较的时候是小写的 0 max_connections 最大链接数据 2000 max_connect_
星哥玩云
2022/08/17
8240
统信 uos-server-20-1060e 二进制部署 MySQL 8.0.36
https://www.chinauos.com/resource/download-server
Kevin song
2024/02/22
2.1K1
统信 uos-server-20-1060e  二进制部署 MySQL 8.0.36
开发经验|小白该如何学习MySQL配置文件
上一篇简单介绍了下MySQL的存储引擎,为什么需要存储引擎以及如何使用存储引擎。MySQL的配置文件是控制和配置 MySQL服务器行为的重要文件。对于新手开发者来说,理解掌握并运用 MySQL 配置文件是非常重要的。本篇想着重讲下MySQL的配置文件,帮助读者朋友们快速了解并上手使用,以便解决你在学习和工作中遇到的问题。
六月暴雪飞梨花
2023/11/24
8980
开发经验|小白该如何学习MySQL配置文件
docker mysql初始化多个sql脚本
现有一台服务器,需要部署mysql。其中mysql容器,需要在第一次启动时,执行多个sql文件。
py3study
2020/05/05
11.7K0
使用Docker容器搭建MySql主从复制
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhiqiang0316/article/details/79249271
林老师带你学编程
2019/05/25
8190
MySQL之my.cnf文件常用参数
MySQL的配置文件,想必大家都不陌生,今天再来说说配置文件中的一些常用配置,并非最合理的配置,仅供参考,只有了解自己的生产环境,才能根据环境找到最适合你的配置文件参数。
AsiaYe
2020/01/15
2.8K0
MySQL之my.cnf文件常用参数
4步搞定MySQL安装部署(附MySQL一键式部署脚本)
学习数据库技术,实际动手的第一步是安装自己的MySQL。MySQL方面也提供多样式的安装方式rpm ,tar ,源码包。当安装完投入使用之后,随着业务量,数据量的增加,往往会碰到很多意向不到的问题。如性能,安全,配置不合理等。对于最佳实践,都应该注意哪些。
数据和云
2021/01/25
2.5K0
4步搞定MySQL安装部署(附MySQL一键式部署脚本)
# client配置项
MySQL配置参数多达数百个,不过常用的并不多,很多配置我们不需要关心,只要掌握一些必要的配置项就能解决99%的问题,当遇见了那1%的问题时mysql可能已经不能满足你的需求了。
用户1175783
2020/05/09
7760
技术分享 | 将GreatSQL添加到系统systemd服务
systemd 是Linux系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其它进程,systemd被设计用来改进原来sysvinit中的多个缺点。
老叶茶馆
2021/07/09
1.9K0
MySQL的五个重要调优配置
在使用 MySQL 数据库时,合理的配置调优可以显著提升其性能和稳定性,确保数据库高效地运行各类应用程序。以下是几个关键的调优配置:
Power
2025/03/05
920
相关推荐
Mysql优化系列(1)--Innodb引擎下mysql自身配置优化
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档