每天5分钟,细读PHP手册-7

foreach

  • foreach中的$value只有在可以被引用时才可以使用&来表示引用;
  • 数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁;
  • foreach 不支持用"@"来抑制错误信息的能力;

break

  • break 可以接受一个可选的数字参数来决定跳出几重循环;

continue

  • continue 可以接受一个可选的数字参数来决定跳出几重循环;

switch

  • 注意和其它语言不同,continue 语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一轮循环,用 continue 2;
  • 注意 switch/case 作的是松散比较;
  • 允许使用分号代替 case 语句后的冒号;

declare

declare 结构用来设定一段代码的执行指令;

  • tick:
    Tick(时钟周期)是一个在 declare 代码段中解释器每执行 N 条可计时的低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。
    不是所有语句都可计时。通常条件表达式和参数表达式都不可计时。
    在每个 tick 中出现的事件是由 register_tick_function() 来指定的。

  • encoding
    可以用 encoding 指令来对每段脚本指定其编码方式。
    在 PHP 5.3 中除非在编译时指定了 --enable-zend-multibyte,否则 declare 中的 encoding 值会被忽略。
    注意除非用 phpinfo(),否则 PHP 不会显示出是否在编译时指定了 --enable-zend-multibyte。

return

  • return 也会终止 eval() 语句或者脚本文件的执行。
  • 如果在全局范围中调用,则当前脚本文件中止运行。
  • 如果当前脚本文件是被 include 的或者 require 的,则控制交回调用文件。
  • 如果当前脚本是被 include 的,则 return 的值会被当作 include 调用的返回值。
  • 如果在主脚本文件中调用 return,则脚本中止运行。
  • 如果当前脚本文件是在 php.ini 中的配置选项 auto_prepend_file 或者 auto_append_file 所指定的,则此脚本文件中止运行。
  • 注意既然 return 是语言结构而不是函数,因此其参数没有必要用括号将其括起来。通常都不用括号,实际上也应该不用,这样可以降低 PHP 的负担;
  • 如果没有提供参数,则一定不能用括号,此时返回 NULL。如果调用 return 时加上了括号却又没有参数会导致解析错误;
  • 当用引用返回值时永远不要使用括号,这样行不通。只能通过引用返回变量,而不是语句的结果。如果使用 return ( a ) ; 时 其 实 不 是 返 回 一 个 变 量 , 而 是 表 达 式 ( a); 时其实不是返回一个变量,而是表达式 ( a);(a) 的值(当然,此时该值也正是 $a 的值);

require

require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值