25分钟了解php?php基础

简介: 🏆今日学习目标:🍀学习php基础
🏆今日学习目标:
🍀学习php基础
✅创作者:贤鱼
⏰预计时间:35分钟

请添加图片描述
@TOC

如何运行🍀

这里用vscode举例

调出cmd
在终端输入php 名字+tab(tab自动补全名字)

记得要进入目标目录下
在这里插入图片描述

语法🍀

在php文件中,既可以包含HTML代码,也可以包含php代码
而php代码必须用 <?php ?>包裹起来

举个例子

<html>
    <head>
        <title>Example</title>
    </head>
    <body>
        <?php
            echo "Hi, I'm a PHP script!";//可以看到php语句在HTML中
        ?>
    </body>
</html>

注释

// 注释当前一行
/ 包裹内容全部注释/

输入输出语句

输出

echo "hellow word\n";
输出一个或者多个字符串
var_dump("hello word");
打印相关变量的信息
printf("%s","hellow word\n");
和c语言一样,格式化输出
var_export
输出或者返回一个变量的字符串表示

<?php
    echo "Hello World\n";
    var_dump("Hello World");
    printf("%s","hello word\n");
?>

在这里插入图片描述

输入

fgets(STDIN): 获取输入的当前行
fread(STDIN,n): 获取前n个字符
fgetc(STDIN):获取一个字符
sscanf(string $str ,string $format [, mixed &$... ]):将 str 按照 fromat 进行格式化解析
<?php
    $str = fgets(STDIN);//获取当前行
    sscanf($str,"%s %d",$s,$d);
    echo $s,$d;
?>

在这里插入图片描述

变量

$a=1;
$b;
%c="hellow word";
$+变量名

如果为赋值直接使用,变量将为空

变量作用域

分为==全局变量==,==局部变量==和==static关键字==

全局变量:定义在函数外都可以使用的变量,在整个文件中都可以用,作用域是从定义处一直到文件结尾

局部变量:函数内定义,只能在函数内部使用,作用域就是函数定义范围内。函数内使用全局变量需要==global==关键字或者==$globals[变量名]==数组

static关键字:将变量生存周期变为全局,不会影响作用域

超级全局变量

$GLOBALS://一个包含了全部变量的全局数组。变量的名字就是数组的键。
$_SERVER://服务器和执行环境信息,是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
$_GET:HTTP GET //变量,通过URL参数传递给当前脚本的变量的数组。 自动url解码
$_POST:HTTP POST// 变量,HTTP POST请求的。Content-Type 是 application/x-www-formurlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
$_FILES:HTTP //文件上传变量,通过 HTTP POST方式上传到当前脚本的项目的数组
$_REQUEST:HTTP //Request 变量,默认情况下包含了 $_GET(自动url解码),$_POST 和$_COOKIE 的数组。
$_SESSION://Session 变量,当前脚本可用 SESSION 变量的数组
$_ENV://环境变量,通过环境方式传递给当前脚本的变量的数组。
$_COOKIE://HTTP Cookies,通过 HTTP Cookies方式传递给当前脚本的变量的数组
$php_errormsg://前一个错误信息
$HTTP_RAW_POST_DATA://原生POST数据
$http_response_header://HTTP 响应头,使用HTTP 包装器时,$http_response_header 将会被HTTP 响应头信息填充。
$argc://传递给脚本的参数数目,传递给脚本的参数数目
$argv:传递给脚本的参数数组,传递给脚本的参数数组

数据类型

数字型

$int1=1234 //十进制正整数
$int2=-1234 //负整数
$int3=01234 //八进制整数
$int4=0x1234 //十六进制整数
$float1=666.66 //浮点数
$float2=6.6666e2 //表示6.6666乘以10的2次方,为指数形式的浮点数

字符串型

$c1 = 'c'
$c2 = "c"
$s1 = 'str'
$s2 = "str"

布尔型

只有true和false

$a = true;
$b = false;

数组型

定义

PHP中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。
==key==的值必须是==整型或者字符串型==,==values==值可以是==任何类型==。
定义数组时==如果不加key键,key值默认从0开始==(下标从0)。
$array1 = [
    "foo" => "bar",
    "bar" => "foo",
];
$array2 = ['a','b']; #等价于 $array2 = [ 0 => "a", 1 => "b"];
$array3 = array(
    "foo" => "bar",
    "bar" => "foo",
);
$array4 = array("a","b"); #等价于 $array4 = array(0 =>'a', 1=>'b')

增加元素

改变赋值来增加元素

$arr['xxx']='yu';

删除元素

利用unser()函数

unset($arr['xianyu']);

查找元素

用key直接访问

var_dump($arr['aaa']);

修改元素

通过ket访问并且修改

$arr['aaa']='xianyu'

常量

定义

define ( string $name , mixed $value )
    name:必选参数,常量名称,即标志符。
    value:必选参数,常量的值。
define('SCHOOL','xianyu');
echo SCHOOL;

在这里插入图片描述

系统常量

名字 作用
LINE 文件中的当前行号。
FILE 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
DIR 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
FUNCTION 函数名称(PHP 4.3.0 新加)。
CLASS 类的名称(PHP 4.3.0 新加)。
TRAIT Trait 的名字(PHP 5.4.0 新加)。
METHOD 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
NAMESPACE 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0增)。

运算符

算数运算符

符号 意义
+
-
*
/
% 取余
++ 累加
-- 累减

字符串运算符

只有一个英文句号 ==.==

赋值运算符

符号 意义
= 右边的赋值给左边
+= 左边的值加上右边的值
-= 左边的值减去右边的值
*= 左边的值乘右边的值
%= 左边的值对右边的值取余数
.= 左边字符串连接到右边

位运算

符号 意义
& 按位与
竖杠 按位或
^ 按位异或
>> 按位右移
<< 按位左移
~ 按位取反

逻辑运算符

符号 意义
&&(and) 逻辑与
两个竖杠 逻辑或
xor 逻辑异或
逻辑非

比较运算符

符号 意义
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于(不包括类型)
=== 完全等于(类型也要相等)
!= 不等于

其他运算符

符号 意义
$ 定义变量
& 变量地址
@ 屏蔽错误信息(扔到函数前头)
-> 应用对象方法或者属性
=> 用于数组元素赋值)
?: 三目运算符

流程控制语句

if-elseif-else

if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}

switch

switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
break;
}

while

$i = 1;
while ($i <= 10) {
    echo $i++;
}

do-while

$i = 0;
do {
    echo $i;
} while ($i > 0);

for

or ($i = 1; $i <= 10; $i++) {
    echo $i;
}

foreach

$arr = array("one", "two", "three");
foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}
foreach ($arr as $value) {
    echo "Value: $value<br />\n";
}

函数

<?php
function add_some_str_a($string)
{
    $string .= 'and something extra.';
}
function add_some_str_b(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_str_a($str);
echo $str."\n";
add_some_str_b($str);
echo $str."\n";
?>

在这里插入图片描述

结束语🏆

后面会继续更新关于php的内容,可以订阅专栏关注一下奥

请添加图片描述

相关文章
|
消息中间件 存储 Cloud Native
现代消息队列与云存储问题之消息队列在安全性方面有哪些考虑
现代消息队列与云存储问题之消息队列在安全性方面有哪些考虑
用Angular获取当前地址的路径path(也就是网址/#后面那坨url)
用Angular获取当前地址的路径path(也就是网址/#后面那坨url)
|
API PHP
通义千问接入进阶:流式、文件、图片、上下文
通义千问接入进阶:流式、文件、图片、上下文
1098 0
【node】图片验证码(svg-captcha)
【node】图片验证码(svg-captcha)
632 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的高校毕业生就业信息系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的高校毕业生就业信息系统附带文章源码部署视频讲解等
110 2
|
Java 程序员 调度
Java中的多线程编程:基础知识与实践
【5月更文挑战第19天】多线程编程是Java中的一个重要概念,它允许程序员在同一时间执行多个任务。本文将介绍Java多线程的基础知识,包括线程的创建、启动和管理,以及如何通过多线程提高程序的性能和响应性。
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的考研互助交流平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的考研互助交流平台附带文章源码部署视频讲解等
150 0
|
供应链 算法
深度 | 5分钟读懂阿里零售通智慧供应链平台
大家好,先做个简单自我介绍,过去十年更多是在2B类业务方面做技术架构和研发工作,近两年专注在零售通供应链方面的技术架构和研发的工作。从技术视角分享二点最近几年感受比较深刻的,第一个点,从技术的架构的升级,从过去的电商架构到现在新零售的架构,比如从过去信息平台到交易平台再到现在供应链协同平台,其架构演进的核心动力是互联网、大数据等技术与商业不断融合和发展。
14219 0