首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP的基本规则

除非字符串中有特殊情况,否则,在程序以及HTML中不允许出现两个连续的空格。 任何情况下,PHP程序中的空白行应当不包含任何TAB或空格。同时,任何程序行尾也不能出现多余的TAB或空格。...A.2.3  文件名 包含任何PHP代码的任何文件必须以.php扩展名结尾。...每个类必须有一个符合PHP编码标准的文档块。 4个空格的缩进。 每个PHP文件中只有一个类。 在类中允许放置另外的代码,但不鼓励这样做。在这些文件中,通过两行空格来分隔类和其他代码。...在圆括号中的条件语句,操作符必须用空格分开,鼓励使用多重圆括号以便在复杂的条件中划分逻辑组合。 前花括号必须和条件语句在同一行,后花括号单独在最后一行,其中的内容用4个空格缩进。 if ($a !...elseif是允许的但强烈不鼓励使用,最好使用else if组合。 2.switch 在switch结构的控制语句中,条件语句的圆括号前后都必须有一个单独的空格。

5.1K50

PSR-12 编码规范扩充

所以,本指南的价值不是规则本身,而是这些规则的共享。 PSR-2 在 2012 年被接受,随后 PHP 经历了很多变化,影响了编码风格。同时 PSR-2 是 PHP 编码时候的基础功能,被广泛的采用。...php。 文件级文档块。 一个或多个声明语句。 命名空间声明语句。 一个或多个基于类的 use 声明语句。 一个或多个基于方法的 use 声明语句。 一个或多个基于常量的 use 声明语句。...当文件包含 HTML 和 PHP 的混合代码时,可以使用上面列出的任何部分。...任何注释和语句 不得 跟在其右花括号后的同一行。 当实例化一个类时,后面的圆括号 必须 写出来,即使没有参数传进其构造函数。...括号中的表达式 可能 会被分开为多行,每一行至少缩进一次。如果这样做,第一个条件 必须 在新的一行。右括号和左大括号 必须 在同一行,而且中间有一个空格。

809110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP面向对象精华

    ,不指向任何其他对象或类。...也就是说,当在扩展类中使用self时,它调用的不是父类的方法,而是扩展类的重载的方法。self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。.../这条语句会输出 b的值 为6 [/php] 下面解释下: 通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别 至于原因: 这是PHP的规定 PHP规定通过$a=&...这句狗屁话 害我半天没看懂 用上面的例子来解释就是 a=test()方式调用函数,只是将函数的值赋给a而已, 而a做任何改变 都不会影响到函数中的b 而通过a=&test()方式调用函数呢, 他的作用是...,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。

    3.4K30

    深入探究Smarty模版

    它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离 smarty优点: 1....,而是保存在内部缓冲区,直到你使用了ob_end_flush().而这里最重要的一个函数,就是ob_get_contents(),这个函数的作用是获取缓冲区的内容 1 的工作原理解析机制: 下面看看SMARTY是怎么做的。...5、SMARTY有个小问题,就是默认的标签{}有可能与CSS和javascript中的{}冲突。当然,我们可以使用literal标签将之分开。...,而是被赋值到了变量 本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持

    6.5K50

    php+mysql动态网站开发案例课堂_用php写一个网页页面

    = '$id' 当然,这个语句应该是写到一行的,不过为了清晰我分开来写。...isset() 函数用来检查变量是否被设置,只有用户点击 submit 后 isset(_POST['submit']) 才返回真,所以不用担心,首次加载表单(那时用户还没有填写任何内容)是不会执行这部分...错误提示 用户输入有误时,上面的改进除了不执行SQL查询,并没有多少直观上的变化。用户不会收到任何信息表明他们的填写是不合适的。所以我们要在这时产生一些提示,引导用户正确填写表单。 <?...id=2&message=10 除了多一个可以使用的 $_GET['message'] 以外没有任何不同。 这个特性的用处之一就是可以根据网址的不同,配合数据库查询,返回不同的网页内容。...例如我做的在线问答系统,就是根据 problem_id 来返回不同题目的。

    8.7K20

    技术研究 | 绕过WAF的常见Web漏洞利用分析

    PS:本文仅用于技术研究与讨论,严禁用于任何非法用途,违者后果自负,作者与平台不承担任何责任 测试环境 PHPStudy(PHP5.4.45+Apache+MySQL5.5.53)+最新版安全狗(4.0.28330...单独的and是不拦截的。and后面加数字或者字符的表达式会被匹配拦截。 1=1,1=2的本质是构造一个真、假值,我们可以直接用True,False代替 ? 但是依然会被拦截。...那么后面的内容会被执行。这些语句在不兼容的数据库中使用时便不会执行 如:1’ and /!1/=/!1/ —+ ? 1’ and /!1/=/!2/ —+ ?...绕过方法1 将filename=”hhh.php” 改为filename=hhh.php; 即可绕过 ? ? 绕过方法2 各种换行,主要是要把点号和字符串”php”分开 ?...在实际的上传应用中,可以将文件上传后放到独立的存储上,做静态文件处理,一方面方便使用缓存加速,降低性能损耗;另一方面也杜绝了脚本执行的可能。

    1.5K20

    SQL注入原理及代码分析(一)

    > 在union注入页面中,程序获取GET参数id,对用户传过来的id值没有进行过滤,直接拼接到SQL语句中,在数据库中查询id对应的内容,并将这一条查询结果中的user和password 输出到页面。...所以访问这个页面,代码根据查询结果返回只返回yes和no,不返回数据库中的任何结果,所以上一种的union注入在这里行不通。尝试利用布尔盲注。...这里要注意,要和limit语句区分开,limit从0开始排序,substr从1开始排序。因为我知道数据库的第一个字母是d,所以直接换成d,转换成16进制就是0x64。结果如下。 ?...我们可以利用这种错误回显,通过updatexml()、floor()等函数将我们要查询的内容显示到页面上。 例如,我们通过updatexml()获取user()的值,构造如下语句。...如果有结果返回yes,没有结果返回no。不返回数据库中的任何数据。 它与布尔盲注的不同在于,时间盲注是利用sleep()或benchmark()等函数让执行时间变长。

    93010

    为何说PHP引用是个坑,要慎用

    在深入讨论这个问题之前,我们先回顾一下引用的基本概念,明确什么是“引用传递”。 在 PHP 中引用意味着用不同的名字访问同一个变量内容,不论你用哪个名字对变量做出了运算,其他名字访问的内容也将改变。...出现这个情况的原因是我们得到的是一个拷贝(具体发生了什么稍后讲解。。。)现在我们使用引用来做同样的事情: 分开的唯一方法是使用 unset() 函数销毁其中任何一个变量。 在 PHP 中,引用不仅能用在普通语句中,还能用于函数参数和返回值: 返回一个排好序的数组可能还更好些。当然,这么做是由于历史的原因:sort() 比『写时复制』更早出现。...以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

    53920

    PHP没你想的那么差

    过去,许多开发者被书本教授非常糟糕的实践,因此 PHP 代码的质量非常差。PHP 曾经还允许你做一些非常奇怪的事情,使得它非常容易构建,但维护起来却是一场噩梦。 这些不再是常见的问题。...糟糕的特性不再受到支持。 PHP 添加了其他语言中存在的大部分(即使不是全部)的特性。 2它的安全性是不是很差? 过去,PHP 应用程序的安全性通常很差,因为语言允许这样做。...通过广泛使用模板系统(可以自动处理显示动态内容的转义和安全问题),已经避免了由于直接在 PHP 中直接使用 HTML 所导致的跨站脚本攻击(其中一个用户将 JavaScript 脚本添加到要显示给另一个用户的地方...另外,ORM 的使用也很普遍,它确保用户数据和查询是分开发送的,而 SQL 不能将其视为单独的命令。...PHP 与其它脚本型语言相比是比较快的。 网站慢通常不是由于使用的语言不够快,而是因为服务器或数据库导致的性能问题。 4它的伸缩性是不是真的很差? 实际上,任何语言都可以伸缩。

    43040

    PHP技巧和窍门来简化你的代码

    如果您有任何想法,欢迎评论提问或者加我建的群进行讨论 技巧1 : (if and else) 您可能以前在教程或其他文章中已经看到过这一点,但这是我真正要提到的非常重要的一点点内容。...当在函数中使用return时,return语句下面的任何代码都将被完全忽略,因此,如果 user_is_male为true,则else块将被忽略,因为返回了值。...trigger_error("User id is invalid"); echo $user; getUserFromDb用于从某个地方的数据库返回用户,但是,如果找不到该用户,则不设置用户变量,而是使用...> 您可以清楚地看到我们如何保持HTML格式和代码对齐……不,这不是模板引擎,这只是PHP使我们变得简单。 关于PHP的一件主要事情是它如何允许以许多不同的方式完成同一件事。...说这些是做事的好方法是完全错误的,所以只能使用它们,就像我之前提到的那样,PHP是一种语言,它提供了许多做同一件事的不同方式,因此,如果您有任何想要分享的东西,新提示,做我提到的事情的更快方法,您不同意的事情

    3.2K40

    干货|某CMS漏洞总结

    .'\';'); if语句中,接收完post请求,即将接收到的内容通过json编码后写入WRITEPATH.'...c=Cron&m=add页面不添加内容直接点击保存时生成的cron.php: \Phpcmf\Service::L('input')->system_log('设置自定义任务类型'); $this->...::L('input')->post('data'); post()函数的第二个参数为是否进行xss清洗,因为post()函数第二个参数的默认值为true,所以这处改动理论上不造成任何影响 同时,在获取...config/cron.php'文件中'的包裹 此处我们先不尝试绕过dr_safe_filename()函数,而是尝试另一个极其简单的方法 通过对xss清洗函数的审计和版本v4.5.1add()函数新增加的代码的审计...,可以发现对于数组的key没有任何过滤,包括多维数组的每一维度的key,所以此处可以通过修改post的内容中的key来写入我们想要的任意内容 以下是我的一个思路:把要写入的文件或要执行的代码,进行各种编码

    4.7K71

    【迅搜09】索引管理(二)增删改操作

    其实呀,这也是 XS 中一个比较被诟病的一点,添加操作,包括之后我们要学习的修改和删除操作,这些方法的返回值都只是一个 XSIndex 对象本身,没有其它内容。...服务端在接收到之后返回的内容在 SDK 中没有处理,也没有返回或者记录。...我们使用的是 uniqid() 这个函数是 PHP 中生成不唯一字符串的。也就是说,上面的这个更新语句中,主键是一个新的 id 。...那么,咱们直接用 update() 做新增不就好了?为啥还要一个 add() 呢?...在 SDK 的测试文件 Quest.php 后面增加的参数 --show-query ,就可以看到分词后的查询语句内容,大家可以使用 “添加一条” 来进行搜索,能看到它被拆分为这样的结果。

    23410

    前端学习(23)~js学习(一)

    后台语言是运行在服务器上的,比如PHP、ASP、JSP等等,这些语言都能够操作数据库,都能够对数据库进行“增删改查”操作。...编程语言的分类 翻译器 计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器。...总结: 我们在实战开发中,基本都是采用方式3,因为这种方式,可以确保 html 文件和 js 文件是分开的,有利于代码的结构化和复用。很少会有人把一大堆 js 代码塞到 html 文件里。...,虽然分号不是必须加的,如果不写分号,浏览器会自动添加,但是会消耗一些系统资源。...prompt()语句中,用户不管输入什么内容,都是字符串。 alert()和prompt()的区别: alert() 可以直接使用。 prompt() 会返回用户输入的内容。

    1.3K20

    Php面试问题_php面试常问面试题

    二.什么是异步请求:(true) 异步请求就当发出请求的同时,浏览器可以继续做任何事,Ajax发送请求并不会影响页面的加载与用户的操作,相当于是在两条线上,各走各的,互不影响。...1、301 MovedPermanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。永久重定向。...204(无内容):服务器成功处理了请求,但没有返回任何内容 205(重置内容):服务器成功处理了请求,但没有返回任何内容 206 (部分内容):服务器成功处理了部分GET 请求 404(未找到):服务器找不到请求的网页...不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;报错时不会阻止后面的代码运行;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。...,然后在返回结果,Memcache采用 LRU 算法来逐渐把过期的数据清除掉 39、mysql锁机制 40、数据库优化从哪几个方面做??

    1.4K10

    PHP中的MySQLi扩展学习(三)mysqli的基本操作

    不过,今天的主角是 MySQLi 中如何执行 SQL 语句以及多条 SQL 语句的执行。 连接与选择数据库 首先是一个小内容的学习分享,依然还是连接数据库,不过这次我们用另外一种方式来进行连接。...在实例化过程中,我们并没有给 mysqli 的构造函数传递任何的参数,而是使用 real_connect() 方法来传递数据库服务器信息并建立连接。...如果执行的是 SELECT 语句,那么 query() 返回的就是一个 mysqli_result 对象,它代表从一个数据库查询中获取的结果集。关于这个对象的内容我们将在后面的文章中进行详细的说明。...它的作用是启动结果集的检索。也就是说,在 mutli_query() 的时候,这些语句并没有马上执行,而是在调用 use_result() 时,才会执行当前的这条语句。...总结 光说不练假把式,虽说多语句执行看似很美好,但即使在这简单的测试代码中,也会出现各种问题,大家一定要自己多尝试一下。

    2.9K20

    关于mysql的join

    PHP_EOL;     \EasySwoole\Component\Timer::getInstance()->clearAll(); }); /* * *返回当前 Unix 时间戳和微秒数(用秒的小数表示...PHP_EOL;     \EasySwoole\Component\Timer::getInstance()->clearAll(); }); /* * *返回当前 Unix 时间戳和微秒数(用秒的小数表示....php  分开查询数据量:4477 7.7116341590881秒 可以看出,join查询时,时间为2.7-4秒之间徘徊,而分开查询时,却变成了4-7秒内徘徊,这个数据还是没有做拼接数据的情况 1对... homeTest]$ php test13.php  分开查询数据量:19998 1.5449161529541秒 可以看出,使用join查询,跟分开查询(这里的分开查询做了优化,因为只有100条消息...(只要有索引,就非常快) 3:分开查询会多执行一条sql,意味着查询速度将会更慢 4:可以通过预先缓存方式,节省掉join小数据的组装数据开销以及带宽开销 那为什么有大佬不建议使用join呢?

    1.1K20
    领券