PHP:语法基础

资源

PHP官方文档
菜鸟教程

Hello World!

测试服务器环境

<?php
	echo 'Hello World';
?>

打开报错提示

找不到php.ini的话可以查看phpinfo

<?php
	phpinfo();
?>

访问后在页面中找Loaded Configuration File
即php.ini的路径
然后参照此博客
写个代码测试一下

<?php
	echo $a;
?>

访问时会报Undefined variable

注意:生产环境下千万不要开报错提示!!!

基本语法

1.起始和结束标记

起始 <?php
结束 ?>

php解析器识别两标记之间的代码作出解析

2.注释
单行注释 // 或#
多行注释 /* */
注意:多行注释时遇到第一个 */ 就会结束,这可能导致错误

数据类型简介

四种标量类型:

boolean(布尔型)
integer(整型)
float(浮点型,也称作 double)
string(字符串)

三种复合类型:

array(数组)
object(对象)
callable(可调用)

两种特殊类型:

resource(资源)
NULL(无类型)

类型查看函数:gettype($变量名)
类型和值查看函数:var_dump($变量名)
类型检验函数:is_type($变量名) 使用时具体为is_string()、is_int()、is_bool()等

echo和print

echo可以输出一个或多个字符串,没有返回值

<?php
	echo "this","is","a","test";
?>

输出结果
在这里插入图片描述

print输出一个字符串,返回值为1

EOF

作用:按照原格式输出其内部的所有内容

结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。

开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,会解释内嵌的变量和转义符号
带单引号则不解释内嵌的变量和转义符号。

<?php
	$a=<<<EOF
    	<h1>我的第一个标题</h1>
   		 <p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>

运行结果
在这里插入图片描述

Boolean

<?php
$foo = True; // 设置 $foo 为 True,不区分大小写
?>

Integer

<?php
$a = 1234; // 十进制数
$a = -123; // 负数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
?>

Float

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
?>

String

一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode

<?php
echo 'this is a simple string';

// 可以录入多行
echo 'You can also have embedded newlines in 
strings this way as it is
okay to do';

// 输出: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// 输出: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// 输出: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// 输出: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// 输出: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>

单引号定义法
表达单引号或反斜线时需要在前面加 \ 进行转义
不对其中的变量名作解析

<?php
        $a="hello";
        echo '$a';
        //输出$a而不是$a的值hello
?>

双引号定义法
会对其中的变量名作解析

<?php
        $a='hello';
        echo "this will print $a";
        //输出 this will print hello
?>

双引号中的单引号只是单纯的单引号,仍会对变量名作解析

<?php
        $a = "1";
        $var = "this is a test about'$a'";
        echo $var;
?>

在这里插入图片描述
字符串长度strlen($变量名)

<?php
        $a="hello";
        echo strlen($a);
        //输出5
?>

字符串拼接运算符 .

 <?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?> 

字符串查找strpos(字符串,被查找字符串),如果找到就返回第一个匹配字符的下标索引

 <?php
echo strpos("Hello world!","world");
//返回 6
?> 

类型比较

== 只比较值不比较类型
=== 既比较值也比较类型

常量

define(“常量名”,常量值)

<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting"
?>

数组

使用array()函数创建数组
使用count($数组名)获取数组长度

<?php
	$MyArray=array("a","b","c");
	echo $MyArray[2];
	//显示 c
	echo count($MyArray);
	//显示 3
?>

超级全局变量

$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION

函数

<?php
	function PrintHW($name){
		echo $name."Hello World";
		return 1;
	}
	PrintHW("jack");
?>

魔术常量

PHP的命名还真是因吹斯听,一会超级一会魔术的

_LINE_
_FILE_
_FUNCTION_
_DIR_
等等等等

表单

1. $_GET变量
用于收集来自GET方法的键值对
使用$_GET[键名]获取值

示例
用GET方法提交键值对的GETTest.html

<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>

<form action="GETTest.php" method="get">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>

</body>
</html>

接收键值对的GETTest.php

欢迎 <?php echo $_GET["fname"]; ?>!<br>
你的年龄是 <?php echo $_GET["age"]; ?>  岁。

访问GETTest.html,输入信息,点击提交
在这里插入图片描述
URL栏变为
在这里插入图片描述
F12查看
在这里插入图片描述
响应页面
在这里插入图片描述
2. $_POST变量
用于收集来自GET方法的键值对
使用$_POST[键名]获取值

示例
POSTTest.html

<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>

<form action="POSTTest.php" method="post">
名字: <input type="text" name="fname">
年龄: <input type="text" name="age">
<input type="submit" value="提交">
</form>

</body>
</html>

POSTTest.php

欢迎 <?php echo $_POST["fname"]; ?>!<br>
你的年龄是 <?php echo $_POST["age"]; ?>  岁。

访问POSTTest.html,输入信息,点击提交
在这里插入图片描述
URL变为POSTTest.php,但其后没有参数
在这里插入图片描述
F12查看
在这里插入图片描述
响应页面
在这里插入图片描述
3. $_REQUEST变量
预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容
也就是说上面的两个php文件中的$_GET和$_POST可以全部用$_REQUEST替代,效果一样

PHP连接MySQL

首先用phpinfo()检查一下有没有安装MySQLi
在这里插入图片描述面向对象的连接方式

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
 
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
echo "连接成功";
?>

面向过程的连接方式

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
 
// 检测连接
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "连接成功";
?>

连接在脚本执行完后会自动关闭
或者你可以使用以下代码手动关闭

$conn->close();
//面向对象
mysqli_close($conn);
//面向过程

我比较喜欢面向对象,所以以下省略掉面向过程的方式

MySQL建库建表

我偏好使用MySQL的shell
不作详解
假设已创建好数据库phptest和其中的表userpass

在这里插入图片描述

向表中插入数据

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "phptest";
 
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
 
$sql = "INSERT INTO userpass (username,password)
VALUES ('John', '123qwerty')";
 
if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
?>

访问此php文件后再进入MySQL检查一下
在这里插入图片描述

一个注册页面的示例

regist.html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Regist Page</title>
</head>
<body>
	<form action="regist.php" method="post">
		<label for="username">用户名:</label><input type="text" id="username" name="yonghuming">
		//向服务器提交的是name:value键值对
		<label for="pass">密码:</label><input type="text" id="pass" name="mima">
		<input type="submit" id="btn" value="注册">
		//在页面上显示的文字是“注册”
	</form>
</body>
</html>

regist.php

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "phptest";

$name=$_REQUEST["yonghuming"];
$pass=$_REQUEST["mima"];
//接收传入的键值对
 
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 
 
$sql = "INSERT INTO userpass (username,password)
VALUES ('$name','$pass')";
 
if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
?>

访问regist.html,输入信息,注册
在这里插入图片描述
查看MySQL
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值