多数大学生出来选择的工作和专业无关
首页 > 专业知识

如何判定PHP运算符优先级别

时间:2018-05-21 18:11:01 [来源]:郑州PHP培训学校

   如何判定PHP运算符优先级别

  文章详细的介绍了PHP运算符优先级的判断方法和对加一/减一运算符、错误控制运算符的语法介绍,希望对大家有帮助。
  学习PHP时,你可能会遇到PHP运算符优先级问题,这里将介绍PHP运算符优先级问题的解决方法,在这里拿出来和大家分享一下。PHP支持一个错误控制运算符:@。当将其放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉。如果激活了track_errors特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中。此变量在每次出错时都会被覆盖,所以如果想用它的话就要尽早检查。
  <?php
  $my_file=@file('non_existent_file')or
  die("Failedopeningfile:errorwas'$php_errormsg'");$value=@$cache[$key];
  ?>
  注:@运算符只对表达式有效。对新手来说一个简单的PHP运算符优先级规则就是:如果你能从某处得到值,你就能在它前面加上@运算符。例如,你可以把它放在变量,函数和include()调用,常量,等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如if和foreach等。执行运算符:PHP支持一个执行运算符:反引号(``)。注意这不是单引号!PHP将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数shell_exec()相同。
  <?php
  $output=`ls-al`;
  echo"<pre>$output</pre>";
  ?>
  注:反引号运算符在激活了安全模式或者关闭了shell_exec()时是无效的。
  加一/减一运算符:
  ++$a前加$a的值加一,然后返回$a。
  $a++后加返回$a,然后将$a的值加一。
  --$a前减$a的值减一,然后返回$a。
  $a--后减返回$a,然后将$a的值减一。
  这个跟c语言的自加,自减一样举个简单的例子加深一下<html>
  <head>
  <title>php常量定义--阿涛随笔</title>
  </head>
  <body>
  <?php
  $a=3;
  $a=++$a;
  echo$a."<br>";
  //输出值为4
  $a=3;
  $a=$a++;
  echo$a;
  //输出值为3
  ?>
  </body>
  </html>
  快速掌握PHP构造函数使用原则
  这里就计算从类中实例化的对象的个数,使用Counter类从构造函数开始增值,文章有详细的介绍,希望对大家有帮助。
  构造函数是PHP中总要的基本语法,什么是构造函数呢?我们这里就一起来看看PHP构造函数。如果你在一个类中声明一个函数,命名为__construct,这个函数将被当成是一个构造函数并在建立一个对象实例时被执行.清楚地说,__是两个下划线.就像其它任何函数一样,构造函数可能有参数或者默认值.你可以定义一个类来建立一个对象并将其属性全放在一个语句(statement)中.
  你也可以定义一个名为__destruct的函数,PHP将在对象被销毁前调用这个函数.它称为析构函数.继承是类的一个强大功能.一个类(子类/派生类)可以继承另一类(父类/基类)的功能.派生类将包含有基类的所有属性和方法,并可以在派生类中加上其他属性和方法.你也可以覆写基类的方法和属性.你可能想知道构造函数是如何被继承的.当它们和其它方法一起被继承时,他们不会在创建对象时被执行.
  一些面向对象语言在类之后命名构造函数.PHP的前几个版本也是如此,到现在这种方法仍然有效.也就是:如果你把一个类命名为Animal并且在其中建立一个命名也是Animal的方法,则这个方法就是构造函数.如果一个类的同时拥有__construt构造函数和与类名相同的函数,PHP将把__construct看作构造函数.这使得用以前的PHP版本所写的类仍然可以使用.但新的脚本(PHP5)应当使用__construct.PHP的这种新的声明构造函数的方法可以使构造函数有一个独一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造函数的名称.
  PHP构造函数其它类方法一样的访问方式.访问方式将会影响从一定范围内实例化对象的能力.这允许实现一些固定的设计模式,如Singleton模式.析构函数,相反于构造函数.PHP调用它们来将一个对象从内存中销毁.默认地,PHP仅仅释放对象属性所占用的内存并销毁对象相关的资源.析构函数允许你在使用一个对象之后执行任意代码来清除内存.当PHP决定你的脚本不再与对象相关时,析构函数将被调用.在一个函数的命名空间内,这会发生在函数return的时候.对于全局变量,这发生于脚本结束的时候.如果你想明确地销毁一个对象,你可以给指向该对象的变量分配任何其它值.通常将变量赋值勤为NULL或者调用unset.
  下面的例子中,计算从类中实例化的对象的个数.Counter类从构造函数开始增值,在析构函数减值.一旦你定义了一个类,你可以用new来建立一个这个类的实例.类的定义是设计图,实例则是放在装配线上的元件.New需要类的名称,并返回该类的一个实例.如果构造函数需要参数,你应当在new后输入参数.
  <?php
  classCounter
  {
  privatestatic$count=0;
  function__construct()
  {
  self::$count++;
  }
  function__destruct()
  {
  self::$count--;
  }
  functiongetCount()
  {
  returnself::$count;
  }
  }
  //建立第一个实例
  $c=newCounter();
  //输出1
  print($c->getCount()."<br>\n");
  //建立第二个实例
  $c2=newCounter();
  //输出2
  print($c->getCount()."<br>\n");
  //销毁实例
  $c2=NULL;
  //输出1
  print($c->getCount()."<br>\n");
  ?>
  当你新建了一个实例,内存会被准备来存储所有属性.每个实例有自己独有的一组属性.但方法是由该类的所有实例共享的.
 

上一篇:PHP执行速率优化技巧小结

下一篇:PHP5.0对象模型的属性和方法分析