【小白专用】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

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

Java基础回顾系列-第一天-基本语法

基本语法 Java基础回顾系列-第一天-基本语法基础常识人机交互方式常用的DOS命令什么是计算机语言(编程语言) Java语言简介Java程序运行机制Java虚拟机(Java Virtual Machine)垃圾收集机制(Garbage Collection) Java语言的特点面向对象健壮性跨平台性 编写第一个Java程序什么是JDK, JRE下载及安装 JDK配置环境变量 pathHe

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json