热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP句法规则详解,php句法详解

php教程|php手册jqueryphp教程-php手册PHP句法规则详解,php句法详解随机聊天网站源码,vscode如何卸载插件,ubuntu休眠费电,tomcat异常进程,s

php教程|php手册PHP句法规则详解,php句法详解
jquery
php教程-php手册
PHP句法规则详解,php句法详解
随机聊天网站源码,vscode如何卸载插件,ubuntu休眠费电,tomcat异常进程,sqlite 初始化计数,前端框架下的大数据分析,爬虫框架colly的事件循环,curl php参数,运城seo全网营销,手机网站源码 php,网页转发平台源码,vs2010 导出模板 灰色lzw
1.简单句法规则(用花括号界定变量名,适用于PHP所有版本):
网页 3d交互 源码,ubuntu怎么进入磁盘,爬虫 挖掘网络数据,php sproto,seo工具推广lzw

$a ='flower';echo "She received some $as";// 无效;字母s会被当成有效的变量名组成元素,但是这里的变量是$aecho "She received some ${a}s";// 有效echo "She received some {$a}s";// 有效;推荐的使用方法

我们希望表达的是”她收到一些花“,语境中的flower应该采用复数形式(也就是说应该在后面加上S),但是如果不对变量做任何界定的话,就会出现第一个echo的情况。显然我们希望输出的是$a而不是$as。那么我们通常是怎么来处理这个输出的呢?

易语言mysql数据库源码,vscode不能识别头文件,ubuntu安装串口,tomcat指向jdk,sqlite怎么加密,网页设计建站点,织梦数据库放在哪里,阿里云linux服务器配置,预览插件,前端框架webp,爬虫的单词,php 贴吧,江山seo,多关联springboot,软件企业公司网站模板下载,dz2.5如何更改网页选项卡的名称,前端的文章页面模板,wordpress 后台 安全,bootstrap3登录页面,登陆追梦网站管理系统,源码程序下载网站lzw

echo "She received some $a"."s"; echo "She received some ".$a."s";// 这两种习惯性的写法应该没有加花括号的写法简洁明了吧?

注意:不管{是出现在$前面还是后面,只有两者紧挨着时花括号才会被当成是界定符号。不要在之间加空格,要不然就会被当作普通的花括号处理

echo "She received some { $a}s";// 输出的结果为:She received some { flower}s

2.复杂句法规则(用花括号界定表达式等,使用与PHP4+):

echo "有效的写法: {$arr[4][3]}";// 有效;界定多维数组echo "有效的写法: {$arr['foo'][3]}";// 有效;当在字符串中使用多维数组时,一定要用括号将它括起来echo "有效的写法: {$this->width}00";// 有效;如果不界定的话,就会变成 $this->width00echo "有效的写法: {$this->value[3]->name}";// 有效;该例演示了界定链式调用echo "有效的写法: $name: {${$name}}";// 有效;该例演示的效果实际上是一个可变变量echo "有效的写法: {${getName()}}";// 有效;该例演示了将函数的返回值作为变量名echo "有效的下发: {${$this->getName()}}";// 有效;该例演示了将函数的返回值作为变量名

注意1:echo “这样写有效吗: {getName()}”;输出结果为:’这样写有效吗:
{getName()}’。因为里面不含$,所以花括号不会被当作界定符
注意2:echo “这样写有效吗:{$arr[foo][3]}”; 在回答这个问题前我们先来进行一个实验:

error_reporting(E_ALL);$arr = array('a','b','c','d'=>'e');echo "This is $arr[d]";// 我们发现这样写是没有问题的,那么我们像下面这样写呢?echo $arr[d];

产生了这样的错误:
Notice: Use of undefined constant d – assumed ‘d’
注意:采用了未定义的常量d,可能应该为’d’
那么如果我们像下面这样修改一下代码的话

error_reporting(E_ALL);$arr = array('a','b','c','d'=>'e');define('f','d');echo $arr[f];

我们发现这次没有问题了。可以看出在字符串中数组的索引不加单引号是没有问题的,但是如果这种写法不是出现在字符串当中就会报错,而对于字符串中 {$arr[foo][3]}的解析就是按照非字符串的方式解析的。所以说在字符串当中对数组只加花括号界定而不对索引加单引号的写法是错误的。因为程序 会把不加单引号的索引当作是常量来进行解析,这就产生了错误。正确的写法应该是:

echo "有效的写法: {$arr['foo'][3]}";

特别提醒一点:echo “This is $arr[d]”;这种写法虽然能够被程序解析,但这也仅限于数组是一维数组的情况。严谨的写法应该是:echo “This is {$arr[‘d’]}”;我的学生曾经在这一点上和我争论过,他说:既然前面一种写法能出结果,为什么一定要用后面一种写法呢?那么,我们再继续修改一 下前面的代码

error_reporting(E_ALL);$arr = array('a','b','c','d'=>array('e'=>'f'));echo "This is $arr[d][e]";

这样还能够被正确解析吗?我只想告诉你,加花括号是严谨的必要的。当然,如果你不是我的学生那么我管不了那么多……

注意3:

error_reporting(E_ALL);$arr = array('a','b','c','d');echo "This is {$arr[2]}
";echo "This is {$arr['2']}
";

执行上面的代码。结果是一样的,为什么会这样呢?我只能告诉你PHP是弱类型语言,至于什么叫弱类型语言我就不在这里多说了。自己去Google一下吧。说了这么多,那么最能体现这些句法规则优势的具体应用在什么地方呢?—-SQL语句

// 示例一:$SQL1 ="select * from table where id={$_GET['id']}";// 示例二:$SQL2 ="select * from table where id={$this->id}";

推荐阅读
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • PHP函数实现分页含文本分页和数字分页【PHP】
    后端开发|php教程PHP,分页后端开发-php教程最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。影视网源码带充值系统,vscode配置根 ... [详细]
author-avatar
孤狼舔血_347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有