A. php中以下哪些情况会产生短路情况

服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的。
涉及到的危险函数:include(),require()和include_once(),require_once()
Include:包含并运行指定文件,当包含外部文件发生错误时,系统给出警告,但整个php文件继续执行。
Require:跟include唯一不同的是,当产生错误时候,include下面继续运行而require停止运行了。
Include_once:这个函数跟include函数作用几乎相同,只是他在导入函数之前先检测下该文件是否被导入。如果已经执行一遍那么就不重复执行了。
Require_once:这个函数跟require的区别 跟上面我所讲的include和include_once是一样的。所以我就不重复了。
php.ini配置文件:allow_url_fopen=off 即不可以包含远程文件。Php4存在远程&本地,php5仅存在本地包含。
你可以去后盾人平台看看,里面的东西不错

B. PHP中 $y =& $x; 是什么意思

学过C语言的 都知道指针 其实这种用法就相当与指针了
&是地址符号 $y的值 不是$x的值 而是$x的内存地址
这就是PHP中的一种引用传递 而非值传递
换句话说 不论$x的值怎么变化 $y的值都与其保持一致
这一点 楼主可以写程序测试一下 就一目了然了。

C. php怎么判断短路呢

php中=是赋值, 在if中要判断条件是要用==的
第一种: if($a && $b = 'cccccccc'), 首先判断$a是不是true?返回true, 并且 $b = 'cccccccc'(这其实是赋值,不是判断),也返回true, 所以整个if返回是true, $b = 'cccccccc'

第二种 if($a || $b = 'cccccccc') 2个条是或的关系, 那么首先判断$a是不是true?返回true, 那么直接if返回的就是true, $b = 'cccccccc'这个根本就没有执行, $b=0

第三种 if($a && $b) 首先判断$a是不是true?结果是true; 然后判断$b是不是true?结果是false, 那么if的结果就是false, if的语句不执行. $b=0

在php运行的结果就是:
$a = 1; $b=0;
if($a && $b = 'cccccccc') echo $b; //返回cccccccc

$a = 1; $b=0;
if($a || $b = 'cccccccc') echo $b; //返回0

$a = 1;$b=0;
if($a && $b){ $b = 'cccccccc';}
echo $b; //返回0

D. php中 $f = false or true 结果居然为假。一头雾水。求高手逐字逐句的解释它是怎

这里涉及到优先级的问题

// 常量 false 被赋给 $f,true 被忽略
// 等同于:(($f = false) or true)
$f = false or true;

逻辑运算符or 的优内先级要低于容负值运算符=

E. PHP短路运算理解不了,求指导

忍不住出来回答一个;
$a=4;
$b=15;

if($a=5||$b=5){ //关键是这里;主要要理解一个短路运算的问题;执行步骤为:
//1,因为优先级的问题先运算5||$b结果为true;

//2,再算$a=true;注意后面不会运算,因为短路了;

//3,返回true给if;

//这里$b=5不会进入运算;

//给你个好点的例子吧;如果这里变成if($a=5||new pdo){ 这里的结果并不会改变,步骤是:1,先运算new pdo;因为new优先级最高;2,运算5||null,这里也是判断5为真后面也不最执行了;3,$a=true;

$a++; //true ++最后还是true
$b++; //因为$b没进入运算,所以15 ++ 最后是15;
}
echo $a,',',$b; //1,16
var_mp($a); //true

F. php中|| 不是真假为真么

这个主要是考察“来||“也就是逻自辑判断当中的“或“用法:
if($a=3 || $b=6)
$a=3 时为把3赋值给$a,$a=3返回为真,按照程序自左至右的执行方式,当左位为真时,“或“判断直接返回真,不再进行后续的判断。
所以$b = 8,后续执行 $b+=1 = 9

G. PHP 中关于&& 和|| 短路问题求技术大牛回答!!!第一次遇到这没奇葩的问题

|| 逻辑或, = 赋值运算
|| 是左联运算符,运算顺序是从左向右
= 是右联运算符,运算顺序是从右到左
|| 的运算级比 = 高
所以if语句可以写成
if($a= (5 || $b=5))
|| 有一个短路现象,当左边的运算能转化为true时,不执行右边的运算,5能转化为true
所以if语句进一步写成if($a = (true || $b=5)), (true || $b=5)这里会有一个bool(true)返回值
由于||的短路现象,if再进一步写成if($a = true) 注意$b=5被短路,并没有被执行
echo $a, true会输出1;
$a++, true++ == true;
所以最后输出1,4

H. php中&&与&有什么区别

PHP中&&与&的区别:

1、运算符性质的区别

&&在PHP中是一个逻辑操作符,也叫条件操作符。

&是逻辑语内言,逻辑上表容示两者属于缺一不可的关系,还可以表示一个人和另外一个人之意,与and同义。如A&B,表示A与B,A和B,A×B。

2、作用上的区别

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

3、用途上的区别

&&:x&&y——功能描述: “条件与”:x和y均为true,取值是true,否则取值是false。&&需要两个操作数的值都是true时,才取值true,但是两个操作符还是有区别的:使用方法是int&& rx=x。

&:是一个位运算符。参加运算的两个数的二进制形式,每一个二进制位进行”与“运算,最后的结果二进制作为结果,例如:3 & 5=1,因为3和5的二进制分别是0011、0101,两个进行与运算的结果是0001。