PHP一些优先级的问题

直接看代码

<?php
echo ‘1‘.print(2)+3,"\n";

不错,就是这么简单,但是很少有人能正确回答

我们执行一下

[[email protected] test]# php -dvld.active=1  test7.php
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /data/www/test/test7.php
function name:  (null)
number of ops:  6
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ADD                                              ~0      2, 3
         1        PRINT                                            ~1      ~0
         2        CONCAT                                           ~2      ‘1‘, ~1
         3        ECHO                                                     ~2
         4        ECHO                                                     ‘%0A‘
   3     5      > RETURN                                                   1

branch: #  0; line:     2-    3; sop:     0; eop:     5; out1:  -2
path #1: 0,
511

让人很诧异吧

换一种写法

<?php
echo ‘1‘,print(2)+3,"\n";

执行结果

[[email protected] test]# php -dvld.active=1  test7.php
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /data/www/test/test7.php
function name:  (null)
number of ops:  6
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ECHO                                                     ‘1‘
         1        ADD                                              ~0      2, 3
         2        PRINT                                            ~1      ~0
         3        ECHO                                                     ~1
         4        ECHO                                                     ‘%0A‘
   3     5      > RETURN                                                   1

branch: #  0; line:     2-    3; sop:     0; eop:     5; out1:  -2
path #1: 0,
151

再换一种

<?php
echo print(2)+3,"\n";

执行结果

[[email protected] test]# php -dvld.active=1  test7.php
Finding entry points
Branch analysis from position: 0
Jump found. Position 1 = -2
filename:       /data/www/test/test7.php
function name:  (null)
number of ops:  5
compiled vars:  none
line     #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   2     0  E >   ADD                                              ~0      2, 3
         1        PRINT                                            ~1      ~0
         2        ECHO                                                     ~1
         3        ECHO                                                     ‘%0A‘
   3     4      > RETURN                                                   1

branch: #  0; line:     2-    3; sop:     0; eop:     4; out1:  -2
path #1: 0,
51

未完待续……

时间: 2024-08-08 05:35:30

PHP一些优先级的问题的相关文章

CSS样式的优先级

1.相同权值情况下,CSS样式的优先级总结来说,就是--就近原则(离被设置元素越近优先级别越高): 内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中). 2.权值不同时,浏览器是根据权值来判断使用哪种css样式的,哪种样式权值高就使用哪种样式. 下面是权值的规则: 标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100.例如下面的代码: p{color:red;} /*标签,权值为1*/ p span{color:green;} /*两个标签,权值为1+

Preload,Prefetch 和它们在 Chrome 之中的优先级

前言 上周五到的时候,想起之前在手游平台上有处理dns-prefetch的优化,那这篇分享的就更仔细了.今日早读文章由@gy134340翻译并授权分享. 正文从这开始- 今天我们来深入研究一下 Chrome 的网络协议栈,来更清晰的描述早期网络加载(像 <link rel="preload" 和 <link rel="prefetch">)背后的工作原理,让你对其更加了解. 像其他文章描述的那样,preload 是声明式的 fetch,可以强制浏览

(4)javascript的运算符以及运算符的优先级

                                运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为算术运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符等. ( 图片来自于W3School离线手册) 算术运算符案例: <!doctype html> <head> <meta http-equiv="content-type" content="

Rabbitmq中的优先级队列操作

1.%% 普通队列操作 in(X, 0, {queue, [_] = In, [], 1}) ->{queue, [X], In, 2}; in(X, 0, {queue, In, Out, Len}) when is_list(In), is_list(Out) -> {queue, [X|In], Out, Len + 1}; 优先级队列操作: in(X, Priority, Q = {queue, [], [], 0}) -> in(X, Priority, {pqueue, []

[程序员入行必备]CSS样式之优先级

专业玩家请移步:http://www.w3.org/TR/CSS2/cascade.html 使用CSS控制页面样式时,经常出现设定的样式被"覆盖",不能生效的情况. 浏览器是依据怎样的优先次序判断CSS样式的优先级的呢? 总结如下: 样式的来源 样式有多处来源,有网页开发作者设定的.有浏览器默认的.还有网页用户设定的.各种样式声明逐层叠加,或继承.或覆盖.或叠加计算,影响元素的展现效果. 样式的来源依次有: 1.浏览器默认样式: 2.用户样式: 3.作者链接样式: 4.作者页内嵌入样

CSS选择器优先级【转】

样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External style sheet <(内部样式)Internal style sheet <(内联样式)Inline style 有个例外的情况,就是如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式. 示例如下: <head>     <style type="text/css&

Linux内核架构读书笔记 - 2.5.3 处理优先级

1 优先级的内核表示 内核使用 0 - 139 表示内部优先级,值越低,优先级越高.0 -99 实时进程使用 nice 值 [-20,19]映射到范围100 - 139,如下图 内核定义了一系列宏来辅助优先级之间的转换 sched.h 1 /* 2 * Priority of a process goes from 0..MAX_PRIO-1, valid RT 3 * priority is 0..MAX_RT_PRIO-1, and SCHED_NORMAL/SCHED_BATCH 4 *

RTX——第8章 任务优先级修改

任务优先级设置注意事项RTX 操作系统任务优先级的设置要注意以下几个问题:? 设置任务的优先级时,数值越小优先级越低.? 最低任务优先级是 0,此优先级被空闲任务使用,任何其它任务都不可以使用.? 用户可以设置的优先级范围是 1-254,由于 RTX 支持时间片调度,所以也是支持用户任务设置为相同的优先级.? 优先级 255 被保留,用于最重要的任务. 任务优先级设置除了创建任务时可以设置任务优先级,也可以通过下面两个函数修改任务优先级:? os_tsk_prio? os_tsk_prio_se

css的选择器的优先级

css覆盖是在打代码的时候,开发者很普通很普通,也是很经常经常用到的,但是容易混淆他们之间的优先级. [][][] 第一个是id,第二个是class,第三个是元素名.有一个就加一.比较这个三位数的大小,越大优先级越高. 比如: .content div{} 这个选择器有一个class,一个元素标签,所以这三位数就是011: 再比如: #content div{} 此时就是一个id,一个元素标签,此时就是101: 说明第二个选择器是可以覆盖第一个的相同的属性的值的.

(五)PL/SQL运算符及优先级 | 条件控制 | 循环控制

一.运算符 PL/SQL语言有丰富的内置运算符,运算符提供的以下几种类型:  .算术运算符  .关系运算符  .比较运算符  .逻辑运算符  .字符串运算符 二.运算符优先级 算数运算符 运算符 操作符 ** 指数运算 +, - 加法,取反 *, / 乘法,除法 +, -, || 加,减,并置    关系运算符    比较运算符 =, <, >, <=, >=, <>, !=, ~=, ^=,  IS NULL, LIKE, BETWEEN, IN 比较    逻辑运算