【小白专用】PHP基本语法 23.11.04

2023-11-04 23:04

本文主要是介绍【小白专用】PHP基本语法 23.11.04,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PHP基本语法

PHP是超文本预处理器 由服务器解析执行 可以与 html 进行混编(嵌入) ,PHP是一种弱类型语言

1.1 PHP标记

PHP和其他Web语言一样,都是用一对标记将PHP代码包含起来,以便和HTML代码区分开来。PHP支持4种风格的标记,如表所示。

标记风格开始标记结束标记
XML风格<?php?>
简短风格<??>
Script风格<script language="php"></script>
ASP风格<%%>

在表中,每种标记风格都有各自的开始标记和结束标记。

1.XML风格

该风格的标记以“<?php”开始,以“?>”结束,具体示例如下:

    <?phpecho "Connection established.\n";  ?> 

XML风格是本书中采用的风格,也是推荐使用的风格。该风格的标记在XML、XHTML中都可以使用,服务器不可以禁用这种风格的标记。

2.简短风格

该风格的标记省略了XML风格中的“php”,具体示例如下:

    <?echo "Connection established.\n";  ?> 

如果需要使用简短风格,必须在配置文件php.ini中设置short_open_tags选项为On,然后重启Apache服务器。因为这种标记风格在许多环境中的默认设置是不支持的,因此本书不推荐使用这种标记风格。另外,如果脚本中包含XML语句,应禁止使用这种风格的标记。

3.Script风格

该风格的标记以“<script language="php">”开始,以“</script>”结束,具体示例如下:

该风格的标记类似于JavaScript语言的标记,该风格的标记不需要进行配置,一般不推荐使用该风格标记,此处只需了解即可。

4.ASP风格

该风格的标记以“<%”开始,以“%>”结束,具体示例如下:

如果需要使用这种风格标记,必须在配置文件php.ini中设置asp_tags选项为On,然后重启Apache服务器。因为这种标记风格在许多环境中的默认设置是不支持的,因此本书不推荐使用这种标记风格

1.2 PHP注释

注释即对程序代码的解释,在写程序时需适当使用注释,以方便自己和他人理解程序各部分的作用。在执行时,它会被PHP解释器忽略,因此不会影响程序的执行。PHP支持C++、C、Shell三种风格的注释。

1.2.1.C++风格的单行注释

该注释是从“//”开始,到该行末尾或PHP结束标记之前结束。

1.2.2.C风格的多行注释

该注释从“/*”开始,到“*/”结束。

但不可以嵌套多行注释,下面的代码是错误的用法,具体示例如下:

1.3 语法规则

 PHP标识符与关键字

在PHP语言中,同样也需要对程序中各个元素命名加以区分,这种用来标识变量、函数、类等元素的符号称为标识符

PHP语言规定,标识符是由字母、数字和下画线组成的,并且只能是以字母或下画线开头的字符集合。在使用标识符时应注意以下几点:

命名时应遵循见名知义的原则。

系统已用的关键字不得用作标识符

关键字虽然可作为变量名使用,但容易造成混淆,不建议使用。

关键字是系统已经定义过的标识符,在程序中已有了特定的含义,如echo、class等,因此不能再使用关键字作为其他名称的标识符

下表中列出了PHP中常用的关键字。

PHP变量

讲解变量的定义、变量的数据类型、检测数据类型、可变变量、变量的引用赋值等关于PHP变量的内容。

在PHP中,若要存储数据,就需要用到变量。在PHP中,变量是由$和变量名组成的,并且变量的命名规则与标识符相同。此处需注意,变量名是区分大小写的,如$Apple与$apple是两个不同的变量。

变量类型

PHP可以为不同的数据指定不同的数据类型。PHP支持8种数据类型,如图所示。

PHP的数据类型分为标量类型(boolean、integer、float、string)、复合类型(array、object)和特殊类型(resource、NULL)。本节只介绍标量类型

1.boolean(布尔型)

布尔型是PHP中较常用的数据类型之一,该类型数据只能为true或false(true表示真,false表示假,这两个值是不区分大小写的),具体示例如下:

2.integer(整型)

整型表示存储的数据是整数,例如1、-1等。在计算机语言中,整型数据可以用二进制、八进制、十进制、十六进制表示,并且在前面加上+或-表示正整数或负整数。如果用二进制表示,数字前必须加上0b或0B;如果用八进制表示,数字前必须加上0;如果用十六进制表示,数字前必须加上0x或0X,具体示例如下:

二进制数是由0、1组成,每逢2进1位;八进制数是由0~7的数字序列组成,每逢8进1位;十六进制数是由0~9的数字和A~F的字母组成序列,每逢16进1位。此处需注意,整型数值有最大取值范围,它的范围与平台有关。

4.string(字符串型)

字符串是一系列的字符,字符串可以使用单引号、双引号、定界符三种形式来定义。虽然三种形式都可以定义一个字符串,但它们却有本质的不同,接下来详细讲解这三种形式。

1)单引号形式

该形式就是将字符序列用单引号括起来。如果需要在字符串中表示一个单引号,则需要使用转义字符(\,也称反斜杠)转义。如果需要在字符串中表示反斜杠,则需要使用两个反斜杠。此外,单引号这种形式的字符串只能转义单引号和反斜杠。PHP中常见的转义字符如表所示。

2)双引号形式

该形式就是将字符序列用双引号括起来,可以转义一些字符,还可以将字符串的变量名替换为变量值(即可以解析其中包含的变量)

3)定界符

字符串的另一种形式是使用定界符(<<<)。该形式在<<<之后提供一个标识符用来表示开始,然后是包含的字符串,最后是用同样的标识符表示结束字符串。注意,结束标识符必须从行的第一列开始,并且后面除了分号不能再包含其他任何字符。

定界符形式的字符串可以很容易定义较长的字符串,因此通常用于从文件或数据库中大段地输出文档。

检测数据类型

在PHP中,变量的类型是由存储的数据决定的。为了检测变量所赋的值是否符合期望的数据类型,PHP中内置了一些检测数据类型的函数,如表所示。

函数功能
is_bool()检测变量是否为布尔型
is_int()检测变量是否为整型
is_float()检测变量是否为浮点型
is_string()检测变量是否为字符串型
is_array()检测变量是否为数组型
is_object()检测变量是否为对象型
is_resource检测变量是否为资源型
is_null()检测变量是否为空值
is_numeric()检测变量是否为数字或数字组成的字符串

在表中,若变量属于某个类型,则函数返回true,否则返回false。

PHP变量

常见的PHP继承开发环境

变量是指在程序执行过程中值可以变化的量,常量是指在程序执行过程中值不变的量,例如圆周率π就可以定义为常量。在PHP中,常量是通过define()函数来定义的,其语法格式如下:

该函数有三个参数,具体如表所示。

另外,mixed 说明一个参数可以接受多种不同的(但不一定是所有的)类型。

获取常量的方法有两种:一种是直接使用常量名获取对应的值,另一种是使用constant()函数获取对应的值。

constant()函数的语法格式如下:

参数$name为需要获取常量的名称,也可以为存储常量名的变量。该函数调用成功,返回常量值,否则提示常量没有被定义。

defined()函数可以判断一个常量是否已定义,其语法格式如下:

参数$name为需要判断的常量名,若该常量已定义,则返回true,否则返回false。

预定义常量

预定义常量是指系统中已定义的常量,可以在程序中直接使用,具体如表所示。

常量名说明
__FILE__当前文件路径
__LINE__当前所在行号
__FUNCTION__当前的函数名
__CLASS__当前的类名
__METHOD__当前对象的方法名
PHP_OSPHP运行的操作系统,如WINNT、UNIX
PHP_VERSION当前PHP的版本号
TRUE布尔值true
FALSE布尔值false
NULL空值null
E_ERROR错误,导致PHP脚本终止运行
E_WARNING警告,不会导致PHP脚本终止运行
E_PARSE解析错误,由程序解析器报告
E_NOTICE非关键的错误

数据类型转换

数据类型转换是指变量或值从一种数据类型转换为另一种数据类型。转换有两种方式:自动类型转换和强制类型转换。

自动类型转换

自动类型转换是指数据类型由PHP自动转换,使用时需注意以下几点:

1. 其他类型转换为布尔类型

当其他类型需要转换为布尔类型时,整型0、浮点型0.0、字符串型""与"0"、不包含任何元素的数组、不包含任何成员变量的对象、NULL会被转换为false,其他值被转换为true。

2. 布尔型转换为整型

当布尔型转换为整型时,true转换为整数1,false转换为整数0。

3. 字符串型转换为整型或浮点型

如果字符串是数字序列的字符,则转换为该数字,否则会出现警告。

4. 布尔型转换为字符串型

true转换为"1",false转换为""。

5. 整型或浮点型转换为字符串型

整型或浮点型数据的字面样式转换为字符串形式。

强制类型转换

强制类型转换是使用者手动将某个数据类型转换成目标数据类型,其中最简单的方法是在需要转换的变量前加上用圆括号括起来的目标类型,具体如所示。

转换操作符说明转换操作符说明
(boolean)转换成布尔型(float)转换成浮点型
(string)转换成字符串型(array)转换成数组
(integer)转换成整型(object)转换成对象

除了上述转换方式外,类型转换还可以通过函数intval()、floatval()、strval()和settype()实现,具体如表所示。

函数说明
int intval (mixed $var [, int $base = 10 ])返回变量$var的integer数值
float floatval (mixed $var)返回变量$var的float数值
string strval (mixed $var)返回变量$var的string值
bool settype (mixed &$var , string $type)将变量 var 的类型设置成 type

通过圆括号方式进行的强制类型转换和上表中前三种函数进行的强制类型转换都没有改变这些被转换变量的类型与值,它们仅仅是将转换得到的新类型数据赋给新的变量,但上表中的settype()函数可以将变量的本身类型转换为其他类型。

PHP编程应该学习的基础知识,包括PHP基本语法、PHP变量、PHP常量、数据类型转换、流程控制语句等

变量及操作
PHP是弱类型语言,变量的类型通常是根据该变量的值决定

PHP中以 $ 作为前缀来定义变量,以a~z(大小写)或 _ 下划线定义变量名

变量是内存中用于临时存储值空间,称为变量名。变量名是用于对这个内存中的数据进行引用的

在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C语言中。

在PHP中,变量的类型通常是根据该变量使用的上下文在运行时(即变量的值)决定的。

简单来说,var = 1;就是数字,var2 = '1’就是字符串,变量类型是由值决定的。
 

变量及操作

PHP中以 $ 作为前缀来定义变量,以a~z(大小写)或 _ 下划线定义变量名

变量是内存中用于临时存储值空间,称为变量名。变量名是用于对这个内存中的数据进行引用的

在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C#语言中。

在PHP中,变量的类型通常是根据该变量使用的上下文在运行时(即变量的值)决定的

简单来说,var = 1;就是数字,var2 = '1’就是字符串,变量类型是由值决定的

语法:$变量名=值;
说明:必须以$符开头变量名只能包含字母、数字、下划线,只能以字母、下划线开头,不能以数字开头(数字不能紧挨着$)变量严格区分大小写
<?php// 定义变量$v1 = 1;$v2 = 1;$result = $v1 + $v2;echo $result;

传值与引用

传值赋值

直接使用 = 将变量的值赋值给另一个变量。

$a = 1;
$b = $a;
$b = 2;
echo $a;//结果是1

PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器。

基本的 PHP 语法

PHP 脚本可以放在文档中的任何位置。

PHP 脚本以 <?php 开始,以 ?> 结束:

<?php
// PHP 代码
?>

PHP 文件的默认文件扩展名是 ".php"。

PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码。

下面,我们提供了一个简单的 PHP 文件实例,它可以向浏览器输出文本 "Hello World!":

<!DOCTYPE html>
<html>
<body><h1>My first PHP page</h1><?php
echo "Hello World!";
?></body>
</html>

PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print

PHP 中的注释

<!DOCTYPE html>
<html>
<body><?php
// 这是 PHP 单行注释/*
这是
PHP 多行
注释
*/
?></body>
</html>

php的一些基本语法

1.php标记符

<?phpecho 'Hello';?>

2.常量

const THE_VALUE = 100;define('THE_VALUE',100);变量 $a=10;

3.函数

functiontraceHello($name){echo 'hello '.$name.'<br>';//字符串连接//echo "hello $name <br>";return 1;//返回值}调用:1.traceHello('zhangsan');2.$func='traceHello'$func('zhangsan');

4.流程控制

1.if elsefunction getLevel($score){if($score>=90){return'优秀';}elseif($score>=80){return '良好';}else{return '不好';}}2.switchfunction getLevel($score){$result = '不好';switch(intval($score/10)){//intval()取整或取出其中整数case 10:case  9:$result = '优秀';break;case  8:$result = '良好';break;default:$result = '不好';//break;}return $result;}

3.for循环

for($i=0;$i<100;$i++){if($i==20){ break; }if($i==40){ continue; }}4.while循环$i=0;while(%<10)...$i++;}5.do while循环$i=0;do{...$i++;}while($i<100);

5.逻辑运算符

|| && !

6.字符串常用方法

strpos($str,'o');substr($str,2);str_split();explode(' ',$str);

7.数组

$arr=array();$arr[0]='Hello';print_r($arr);$arr['h']='hello';$arr['w']='world';$arr =array('h'=>'hello','w'=>'world')

8.

require 'lib.php';//依赖,文件不存在报错require_once 'lib.php';//只引用一次include 'lib.php';//包含,文件不存在给出警告

9.声明类

namespace jk;//命名空间class Man{private $_age,$_name;private static $NUM = 0;//静态变量/*** @param int $age 年龄* @param string $name 名字public funcation _construct($age,$name){$this-> _age = $age;//this当前对象指针,self当前类指针,parent父类指针$this-> _name = $name;}//构造方法public funcation sayHello(){}//成员方法public static funcation say(){}//类方法}创建实例$a=new Man();$a->sayHello();//调用方法Man::say();$h = new\jk\Hello();//存在命名空间

10.类继承,重写方法

class Child extends Man{publicfunction _construct($age,$name){parent::_contruct($age,$name);}publicfunciton say(){//重写方法//parent::say(); //保留父类方法echo 'child';}}

11.常用库函数

time();//时间戳date_default_timezone_set('Asia/Shanghai');//时区设置date('Y-m-d H:i:s');//时间date('Y-m-d H:i:s',time());//时间戳转换成时间$obj =array('h'=>'Hello','w'=>'World');echo json_encode($obj);//转换成json格式$jsonStr ='{"h":"Hello","w":"World"}';$obj =json_decode($jsonStr);//json字符串转换为php对象$f = @fopen('data','w');//打开文件,@不输出警告fwrite($f,'hello');//写入文件fclose($f);$f = @fopen('data','r');while(!feof($)){//判断是否到达文件尾$content =fgets($f);//只能读取一行echo$content;}echofile_get_contents('data');//直接获取文件die('结束页面');

12.获取get参数和post参数

if(isset($_GET['name'])&& $_GET['name']){}//isset()判断变量是否设置empty($name)判断变量是否赋值

13.获取文件

$file = $_FILES['file'];
   $fileName = $file['name'];
  move_uploaded_file($file['tmp_name'],$fileName);

14.

cookie和sessionsetcookie('name','cheng');header('Location:a.php');//跳转//a.phpecho $_COOKIE['name'];//获取cookiesession_start();//启用session$_SESSION['name'] ='cheng';echo session_id();//获取sessionidecho$_SESSION['name'];//session_destroy();//销毁session

15.sqlserver数据库

$serverName = "aliks.cn,5468"; //数据库服务器,端口号
$uid = "tt_db"; //数据库⽤户登录名
$pwd = "alibaba156"; //数据库⽤户登录密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"DBiSys",'charset' =>'GBK');
$conn = sqlsrv_connect( $serverName, $connectionInfo);if ($conn === false) {  echo "Could not connect.\n";  die(print_r(sqlsrv_errors(), true));  
}  $tsql = "insert into tb_users(user_id,username,pass_word,email,phone,role) values (null,'$username','$password','$email','$phone','$role')";
//$tsql=iconv('UTF-8','GBK',$tsql);//查询前对SQL转码
//向数据库插入表单传来的值的sql/* Prepare and execute the query. */  
$stmt = sqlsrv_query($conn, $tsql, []);  
if ($stmt) {  /* echo "Row successfully inserted.\n";  */
} else {  echo "Row insertion failed.\n";  die(print_r(sqlsrv_errors(), true));  
}  /* Get the number of rows affected and display appropriate message.*/  
$rows_affected = sqlsrv_rows_affected( $stmt);  
if( $rows_affected === false)  
{  echo "Error in calling sqlsrv_rows_affected.\n";  die( print_r( sqlsrv_errors(), true));  
}  
elseif( $rows_affected == -1)  
{  echo "No information available.\n";  
}  
else  
{  echo $rows_affected." rows were updated.\n";  
}  /* Free statement and connection resources. */  
sqlsrv_free_stmt($stmt);  
sqlsrv_close($conn);  

这篇关于【小白专用】PHP基本语法 23.11.04的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345779

相关文章

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数