PHP 基础入门

news2024/11/14 20:45:13

目录

1、标记

2、注释

3、输出语句

4、关键字

5、常量的定义与使用

6、预定义常量

7、变量的赋值(传参赋值与引用赋值)

8、可变变量

9、双引号和单引号的区别

10、heredoc结构和nowdoc结构

11、其他符号


1、标记

<?php 和 ?> 是PHP标记中的一种(标准标记),专门用来包含PHP代码;

echo用于输出一个或多个字符串;

结束标记前的最后一条语句可以省略分号。

除了标准标记,还有短标记,ASP式标记,Script标记

 短标记和ASP式标记都是需要先开启才能使用;

ASP式标记和Script标记我们一般不推荐使用,了解即可。

注意:

若脚本含有XML语句,应避免使用短标记,因为“<?”是XML解析器的一个处理指令,会造成混淆。

2、注释

PHP支持3种:

C++风格的单行注释 “//”

C风格的多行注释 “/*......*/”

Shell风格的注释 “#”

3、输出语句

常用的有:echo,print,var_dump(),print_r()

<?php
echo 1+2,'Q';
print 'you';
echo '<br/>'; //<br/>是HTML标签,表示换行
print_r('hello');
echo '<br/>';
var_dump(2,3);
var_dump('Myon');
?>

echo 和 print 用法相同,但前者可以多个输出(多个数据间用逗号分隔),后者只能输出一个值;

print_r()是PHP的内置函数,可以输出任意类型的数据;

var_dump()不仅可以打印一个或多个任意类型数据,还可以获取数据的类型和元素个数。

下面是运行结果:

4、关键字

PHP中保留了很多关键字

例如,class关键字用于定义一个类;

const关键字用于定义常量;

function关键字用于定义一个函数。

5、常量的定义与使用

可以通过define()函数或者const关键字实现

<?php
define('PAI',3.14);
define('R',5,true);
echo PAI,"\n"; //echo输出多个数据时用逗号分隔,至于为什么换行符用双引号引而不是单引号后面解释
echo R,"\n";
echo r,"\n";

const R = 6;
const D =2*R;
echo D;
?>

运行结果:

 define()函数第一个参数表示常量名称,第二个参数表示常量值;

第三个参数是可选的,用于指定常量名是否对大小写敏感,可设置为true或false,

默认是false,即会对大小写敏感。

我们上面将 ‘R’ 设置为true,则对大小写不敏感,后面输出r也是可以的,结果一样。

const关键字定义常量时,只需在后面跟上常量名称,用“=”进行赋值即可。

6、预定义常量

除自定义常量外,PHP中还提供了很多预定义常量:

常量名功能
__FILE__默认常量,PHP程序文件名
__LINE__默认常量,PHP程序行数
PHP_VERSION内建常量,PHP程序的版本
PHP_OS内建常量,执行PHP解析器的操作系统名称
TRUE该常量是一个真值(true)
FALSE该常量是一个假值(false)
NULL一个null值
E_ERROR该常量指到最近的错误处
E_WARNING该常量指到最近的警告处
E_PARSE该常量指到解析语法有潜在问题处
E_NOTICE该常量为发生不寻常处的提示但不一定是错误处

看例子 :

<?php
echo __FILE__; //当前文件路径
echo '<br>';  //换行
echo PHP_VERSION;  //当前PHP版本
echo "\n";  //换行
echo PHP_OS;  //当前操作系统
echo PHP_EOL;  //换行
echo __LINE__;  //程序中的当前行号
?>

运行结果: 

 使用预定义常量可以很方便的获取到当前文件的路劲、PHP版本、操作系统等信息

顺便我们也介绍了PHP中三种常见的换行方式:

echo '<br>'; 

echo "\n"; 

echo PHP_EOL; 

7、变量的赋值(传参赋值与引用赋值)

默认是传值赋值,即将“=”右边的数据赋值给左边的变量

<?php
$n1 = 10; //定义变量$n1并赋值为10
$n2 = $n1;  //定义变量$n2,并将$n1的值赋给$n2
$n1 = 100;  //修改$n1的值为100
echo $n1; 
echo "\n";
echo $n2;
?>

运行结果:

 可以看到,后面修改变量$n1的值但是并没有改变变量$n2的值

而引用赋值就是在要赋值的变量前添加“&”符号

我们对上述代码稍作修改

<?php
$n1 = 10;
$n2 = &$n1;  //添加&,变为引用赋值
$n1 = 100;
echo $n1;
echo "\n";
echo $n2;
?>

 可以看到修改$n1的值,$n2的值也随之改变

引用赋值就相当于给变量起了一个别名(和C++很像)

8、可变变量

为了方便在开发时动态地改变一个变量的名称

通过可变变量,可以将另一个变量的值作为该变量的名称

通过在变量前多加一个美元符号“$”来实现

(我最开始看这里是没理解的,我老是想给变量hello加上两个美元符号,其实它的意思是当我们定义好了一个可变变量,我们在用到它的时候可以用多加一个$的方式来调用这个变量,并不是在变量的值上面去多加美元符号)

来看一个简单的例子:

<?php
$a = 'hello';
$hello = 'Myon'; //将变量$a的值作为该变量的名称
echo $a,' ',$$a;
echo "\n";
echo $$a;
echo "\n";
echo $hello;
?>

运行结果:

我们可以看到 $$a 和 $hello的值是一样的

注意:

若变量$a的值是数字,则可变变量$$a就会出现非法变量名的情况

9、双引号和单引号的区别

双引号中的字符串会被解析,而单引号中的字符串则会原样输出。

<?php
$Num = 10;
echo "$Num =",$Num;
echo "\n";
echo '$Num =',$Num;
?>

 

10、heredoc结构和nowdoc结构

都以“<<<”开始,后跟标识符名称;

heredoc的标识符没有引号,而nowdoc的标识符必须使用单引号包裹;

结束时所引用的标识符名称与开始时相同。

<?php
$name = 'PHP';
$heredoc=<<<EOD
<ul>
  <li>$name 是世界上最好的语言!</li>
  <li>$name is the best programming language in the world !</li>
</ul>
EOD;
echo $heredoc;
$nowdoc = <<<'EOD'
<ul>
  <li>$name是世界上最好的语言!</li>
  <li>$name is the best programming language in the world!</li>
</ul>
EOD;
echo $nowdoc;

 heredoc结构的字符串会解析其中的变量,nowdoc结构中的变量会被原样输出。

可以类比双引号和单引号

11、其他符号

“==”是比较运算符,用于比较左右两个值是否相等;

“.”是字符串连接符,用于连接两个字符串。

<?php
echo '123'.'ABC';
echo "\n";
var_dump(0==false);
?>

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/505575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】EXPLAIN 语句 各字段 详解

EXPLAIN 语句 概貌 在连接查询的执行计划中&#xff1a; 每个表都会对应一条记录&#xff0c;这些记录的 id 列的值是相同的&#xff1b; 在包含子查询的执行计划中 &#xff1a;每个 select关键字都会对应一个唯一的 id 值。 驱动表&#xff1a;出现在前面的表&#xff1b; …

Apache ECharts 一个基于 JavaScript 的开源可视化图表库

一&#xff1a; ECharts 特性 ECharts&#xff0c;一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&#xff08;IE9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0c;Safari等&#xff09;&a…

谷歌正在向所有账户推出密码终止技术

谷歌宣布让其个人帐户持有人使用称为“密码”的密码替代登录的一项重大努力。 该功能面向公司的数十亿帐户推出&#xff0c;用户将能够主动寻找并启用它。谷歌表示&#xff0c;它计划在未来几个月推广密码&#xff0c;并开始推动账户持有人将他们传统的用户名和密码登录转换为…

vscode 远程开发:免密登入设置

文章目录 1. vscode 安装2. vscode 插件安装&#xff08;1&#xff09; 中文界面设置&#xff08;2&#xff09; ssh远程插件安装 3. 免密登入 1. vscode 安装 vscode 官网下载地址&#xff1a;https://code.visualstudio.com/ 安装很简单&#xff1a; 可以默认方式&#xff0…

新建一台VMware虚拟机

文章目录 前言一、问题二、步骤1.确认已安装VMware Workstation&#xff0c;已下载Windows 10 光盘镜像2.新建虚拟机pc13.自定义虚拟机pc1的硬件 总结 前言 新建一台VMware虚拟机。 一、问题 本例要求在VMware Workstation软件中创建一台新虚拟机&#xff0c;相关说明如下。 …

Go语言字符串基础

目录 字符串基础 合并和分割字符串 分割 合并 判断是否包含 strings.Contains() 查找子串出现的位置 strings.Index() strings.LastIndex() 字符串基础 1.字符串是由一串Unicode字符组成的序列&#xff0c;每个Unicode字符都占用一个或多个字节的存储空间。 2.字符串…

【腾讯云 Finops Crane 集训营】老板喜欢降本增效?学会 Crane,让腾讯每月省千万的奇迹在你手中上演

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

SpringBoot 简单多模块构建

前言 SpringBoot系列到现在虽然代码不多&#xff0c;但是感觉结构很乱&#xff0c;随着项目的复杂性提高&#xff0c;代码会越来越臃肿&#xff0c;耦合性高。 所以SpringBoot多模块很有必要&#xff0c;简单来说就是由以前按包分模块变为jar包分模块。在多模块jar模式下可以将…

【勝讯云 Finops Crane 集训营】之集群优化实战

重要通知 由腾讯云联合 CSDN 推出的“腾讯云 Finops Crane 开发者集训营”活动&#xff0c;主要面向广大开发者&#xff0c;旨在通过线上直播、组织动手实验、有奖征文&#xff0c;开源项目贡献者招募这一系列技术实践活动中既能通过活动对 Finops Crane 开源项目有一个深入的]…

mathtype不激活能用吗 mathtype产品密钥如何取得

在文档中输入数学式子时一般会用到mathtype&#xff0c;虽然mathtype为广大用户提供了一定期限的试用期&#xff0c;但试用期后如果没有成为正式用户&#xff0c;那么部分功能可能就用不了了。有些小伙伴可能会对mathtype不激活能用吗&#xff0c;mathtype产品密钥如何取得这两…

PostGIS五分钟入门【空间数据库】

在本文中&#xff0c;我们将介绍 PostGIS 的一些基础知识及其功能&#xff0c;以及一些可用于简化解决方案或提高性能的提示和技巧。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 简而言之 - PostGIS 是一个 Postgres 扩展&#xff0c;增加了对存储和操作空间数据类…

PyQt5桌面应用开发(11):摸鱼也要讲基本法之桌面精灵

本文目录 PyQt5桌面应用系列鼠标不要钱&#xff0c;手腕还不要钱吗&#xff1f;PyQt5源程序python文件资源定义界面定义文件 技术要素资源文件StyleSheetsQMainWindow设置窗体几何 结论 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQ…

orbslam3 编译时 Thirdparty sophus 库多种错误 redefinition, not declared in this scope

问题 在装了 ROS 的机器人系统里编译 orbslam3 时, 发现 Thirdparty sophus 库密集报错, 导致 orbslam3 无法完成编译 排查 同样的代码在装了 ROS 的笔记本 ubuntu18.04 系统里可以成功通过编译, 但是在装了同版本 ROS 的机器人 ubuntu18.04 系统里无法编译 Sophus 库本身…

探秘力扣之谜:如何轻松解决最长公共前缀问题?

本篇博客我会讲解力扣中的“14. 最长公共前缀”这道题&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是几个输出示例&#xff1a; 提示&#xff1a; 这道题的思路其实并不难&#xff0c;也是一些字符串的常规操作的结合。大家可以先思考一下&#xff0c;再来听我讲…

TCP和UDP数据报文详解(区别及三次握手四次挥手详解)

总结TCP和UDP详解在后文 相同点&#xff1a; 1.都是传输层协议 2.都是全双工通信 区别&#xff1a; TCPUDP面向连接无连接一对一一对一&#xff0c;一对多&#xff0c;多对多&#xff0c;多对一(单播&#xff0c;多播&#xff0c;广播)可靠不保证可靠交付面向字节流面向报…

java变量与方法

方法 构造方法 定义&#xff1a;构造方法是一个特殊的成员方法&#xff0c;名字必须与类相同&#xff0c;在创建对象时由编译器自动调用&#xff0c;并且在生命周期内只调用一次 演示&#xff1a; 特性&#xff1a; 1.构造方法名字必须与类名相同&#xff08;如果不同&#…

Ajax XML

文章目录 AJAX XML 实例AJAX XML 实例实例解析 loadXMLDoc() 函数AJAX 服务器页面 AJAX XML 实例 AJAX 可用来与 XML 文件进行交互式通信。 AJAX XML 实例 下面的例子将演示网页如何使用 AJAX 来读取来自 XML 文件的信息&#xff1a; 代码部分 <!DOCTYPE html> <h…

Oracle—数据恢复

文档结构 1、恢复原理1.1、recyclebin&#xff08;回收站&#xff09;相关操作 2、恢复场景2.1、定义删除2.2、记录删除2.2.1、undo恢复2.2.2、redo恢复2.2.3、dbms_logmnr 场景&#xff1a;在 Oracle数据库使用过程中&#xff0c;误删对象或误删记录的情况时有发生&#xff1b…

07- 算法解读 Faster_R-CNN (目标检测)

要点&#xff1a; Faster_R-CNN RPN Fast R-CNN GitHub地址&#xff1a;vision/torchvision/models/detection at main pytorch/vision GitHub 三 Faster_R-CNN Faster R-CNN 是作者 Ross Girshick 继 Fast R-CNN 后的又一力作。同样使用 VGG16 作为网络的 backbone &am…

Windows 10 安装安卓子系统 WSA(Magisk/KernelSU)使用 WSA 工具箱安装 APK

from https://blog.zhjh.top/archives/XokySA7Rc1pkVvnxAEP5E 前提是系统为 Windows 10 22H2 10.0.19045.2311 或更高版本&#xff0c;尽量新。 步骤 使用 WSAPatch 和 MagiskOnWSALocal 安装 WSA 在 Microsoft Store 中安装 Ubuntu LTS&#xff08;或你喜欢的发行版&#xf…