监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
南昌网站建设公司

当前位置:工程项目OA系统 > 泛普各地 > 江西OA系统 > 南昌OA系统 > 南昌网站建设公司

基础PHP小知识分享

申请免费试用、咨询电话:400-8352-114

在网站建设过程中通常会遇到一些小问题,下面泛普软件跟大家分享建站基础知识

一、require 和 require_once的区别

require 和 require_once两个的引用方法没有什么区别;他们的区别在于使用require每引用一次文件中的代码就会被执行一次,而使用require_once函数则不然,如果目标文件中的代码已经被包含了,则不会再次被包含。


二、require 和 include 的区别

在使用上两者没有本质的区别。两者的区别体现在当目标文件不存在时的处理方法上。
如果引用的文件不存在,include将会产生一个警告;require则会导致一个致命的错误。换句话说,如果想在丢失文件时停止处理页面,可以使用require方法。而include则不会这样,即便出错,脚本也会继续运行。

如:当使用require时

<?php
 require "hello1.php";
 echo '<br>';
 require_once ("hello.php");
?>
显示的结果:

Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2

Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2

脚本出现错误,require_once 调用的函数不会被执行。

当使用include时:

<?php
 include "hello1.php";
 echo '<br>';
 require_once ("hello.php");
?>
显示的结果:
Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2

Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2

hello world
即使脚本出现错误,require_once调用的函数也会被执行。

三、PHP中的常量的值只包括4种类型:

    整型(整数)integer
    浮点型 float(含小数点得数)
    字符型 string(字符与字符串)
    布尔型 boolean (布尔值)
   
四、数据类型分类

数据类型分为3大类共8种类型:

1、最基本的4种类型:
   boolean  (布尔型)
   integer  (整型)
   float  (浮点型)
   string (字符串型)

2、符合型数据
   array  (数组)
   object  (对象)

3、最特殊的数据类型
   resource (资源)
   NULL (无值) 注:使用unset()函数可以注销一个变量

五、查看一个函数的类型我们可以使用
    gettype() 函数
    该函数的语法格式代码如下
    string gettype (mixed var)

六、自定义常量的函数
    define()
    该函数的语法格式代码如下
    bool define(string name, mixed value[,bool case_insensitive])
    如,定义一个HOSTNAME的常量
    define ("HOSTNAME","localhost");

七、当将自定义函数的的可选项case_insensitive设置为true时定义的常量将会      忽略大小写。

八、获取所有预定义的PHP常量
    get_defined_constants()
    该函数的语法格式代码如下:
    array get_defined_constants([mixed categorize])
    可选参数categorize,该参数用于指定是否把系统中的常量按照其各自所属的    分类输出。

九、魔术常量
    魔术常量属于系统常量的一种,与普通的系统常量不同,该类常量在不同的    PHP文件中将会有不同的值。
   
    1、__LINE__, 指代当前代码所在行数。
    2、__FILE__, 指代当前文件的路径名。
    3、__FUNCTION__, 指代当前被调用的函数名。
    4、__CLASS__ , 指代类的名称名。
    5、__METHOD__, 指代类的方法名。

十、比较运算符

    比较运算符用于对不同的内容进行大于、小于、等于及不等于类似的比较操    作。
   
    ==  (等于),该运算符如果前后内容相等则返回TRUE,反之则返回FALSE
    === (全等于),该运算符如果前后内容相等并且类型一致则返回TRUE,反之则        返回FALSE。
    !=  (不等), 该运算符如果前后内容不相等则返回TRUE,反之则返回FALSE
    <>  (不等), 该运算符如果前后内容不相等则返回TRUE,反之则返回FALSE
    !== (非全等),该运算符如果前后内容不全等则返回TRUE,反之则返回FALSE
    <   (小于), 该运算符如果前面的值小于后面的值则返回TRUE,反之则返回        FALSE。
    >   (大于), 该运算符如果前面的值大于后面的值则返回TRUE,反之则返回        FALSE。
    <=  (小于等于),该运算符如果前面的值小于等于后面的值则返回TRUE,反        之则返回FALSE。
    >=  (大于等于),该运算符如果前面的值大于等于后面的值则返回TRUE,反之        则返回FALSE。

十一、逻辑运算符
   
      PHP中得逻辑运算符用于处理逻辑与、逻辑或、逻辑异或及逻辑非等逻辑关      系并返回相应的布尔值。
    
     and (逻辑与),该运算符如果前后的两个值均为TRUE则返回TRUE,反之返回           FALSE。
     or  (逻辑或),该运算符如果前后的两个值中至少有一个为TRUE返回TURE,          反之(如果没有一个TRUE)FALSE。
     xor (逻辑异或),该运算符如果前后两个值不同(一个为TRUE,另一个为         FALSE)则返回TRUE,反之(两者相同)则返回FALSE。
     !   (逻辑非),该运算符号如果其后面的值为FALSE则返回TRUE,反之则返回         FALSE。
     &&  (逻辑与),同and(优先等级不同)。
     ||  (逻辑或),同or (优先等级不同)。

十二、递增/递减运算符

     PHP中也支持C语言风格的前/后递增与递减运算符。PHP中得递增/递减运算     符包括一下几种:

     ++$a (前加),$a的值加1,然后返回$a;   ($a的值先加一,在返回$a)
     $a++ (后加),返回$a,然后将$a的值加1;
     --$a (前减),$a的值减1,然后返回$a;
     $a-- (后减),返回$a,然后将$a的值减1; ($a的值先返回$a,在减一)
    
     注:从上面可以看出:前加(减)是先加(减)再返回值,而后加(减)则是先返     回值再加(减)。

十三、三目运算符
     
      三目运算符由两个表示符号即问号、冒号等组成。其语法格式如下:
     
      (expr1)?(expr2):(expr3);
     
      语句的意思是:当expr1为TRUE时返回expr2当expr1为FALSE时返回expr3。

十四、流程控制语句

      1、if      判断;
            语法:if(expr)
                  {
                   statement
                   .........
                   }
      2、if....else 判断;
            语法:if(expr)
                   {
                   statement1;
                   }
                   else
                   {
                   statement2;
                   }
      3、if....elseif....else   多重判断;
     语法:if(expr)
                   {
                   statement1;
                   }
                   elseif(expr2)
                   {
                   statement2;
                   }
                   elseif(expr3)
                   {
                   statement3;
                   }
                   ........
                   else
                   {
                   statementN;
                   }
      4、switch    判断;
           语法: switch($var)
                  {
                  case value1;
                  statment1;
                  break;
                  case value2;
                  statment2;
                  break;
                  .......
                  default:
                  statmentN;
                  }
            也可以使用以下的语法替代格式:
               switch($var):
                  case value1:
                  statment1;
                  break;
                  case value2:
                  statment2;
                  break;
                  .......
                  default:
                  statmentN;
                endswitch;
        
      5、while     循环;
         语法格式: while(expr)
                    {
                    ........
                    statment;
                    }
      6、do        循环;
         语法格式:do
                   {
                   ........
                   statement;
                   }
                   while(expr);
      7、for       循环;
         语法格式:for (expr1; expr2; expr3)
                    {
                     ......
                        statement;
                    }
         常见的格式:for ($i=1; $i<6; $i++)
                     {
                     ...........
                     statement;
                     }
      8、foreach   循环;
         语法格式: foreach (array_expression as $value)
                    {
                     statement;
                    }
                   
                    foreach (array_expression as $key => $value)
                    {
                     statement;
                    }
     
      解释:
      (一)、if 判断是所有的判断中最简单的一种。因为其只判断条件为真的一       种情况,所以也被称为单重判断。

      (二)、if....else.... 判断语句在判断条件为假时不会执行指定语句,却       会执行程序所设定的另外的语句。

      (三)、if....elseif...else... 判断语句时,为了提高效率,一定要把最       有可能为真的语句放到最前面,而把最不可能出现的情况放在最后面。这        样当遇到判断条件问真时,就不用在执行后面的内容。

      (四)、switch 判断语句的使用限制。与if elseif else判断不同,switch       仅能用于判断的内容是一个变量的情况,而其中case后面跟的判断结果都        应该是一个值而不能是一个表达式。而if elseif else在这方面则更加自        由,其中的判断内容可以是任意的表达式。
          注意:switch 判断语句,如果在case后面不加break语句,则switch        会一直执行到最后一句case后面的内容。所以,通常情况下都需要在每个        case后面加上break语句,以使case执行之后跳出整个判断过程。

      (五)、do循环和while循环的区别:
      他们的区别在于:while循环当条件不满足时,跳出循环,do循环无论条件       满足还是不满足,首先执行一次。
     
      (六)、for 循环中需要三项内容,expr1,expr2,expr3分别为三个表达式,
      第一个表达式(expr1)在循环开始前无条件求值一次;expr2在每次循环开
      始前求值,如果值为TRUE,则继续执行循环体的语句statement。如果值为
      FALSE则终止循环,expr3在每次循环之后被求值(执行)。
     
      for循环与while循环的比较:
      while循环在知道什么情况下执行循环时相对方便;而for循环更适合于事        先知道循环次数的场合。

      (七)、foreach 开始执行时,数组内部的指针会自动指向第一个单元,这        意味着不需要在foreach循环之前调用reset()(重置数组)。并在每次循环        时自动向前移一步。

      (八)、break 和 continue 的区别
      break 和 continue 都有跳出循环的作用,
      break主要是无条件的跳出整个循环,continue则是无条件的跳出本             次循环,继续执行后面的循环。 
      使用if判断语句和continue语句时,如果将它们放到最前面将会造成死循        环。

十五、用编程的思想解决百钱百鸡问题

      有100文钱,买100只鸡,规定100只鸡中公鸡、母鸡和小鸡。买一只公鸡需       要5文钱,买一只母鸡需要3文钱,买三只小鸡需要1文钱,问:怎样才能凑       成百钱买百鸡?
     
      代码如下:
      <?php
       $i=0;
   for($x=0;$x<20;$x++)
    {
  for($y=0;$y<100-$x;$y++)
   {
   $z=100-$x-$y;
   if(5*$x+3*$y+$z/3==100)
   {
   $i++;
    echo "第".$i."种方案:";
    echo "公鸡数位:";
    echo $x."&nbsp;";
    echo "母鸡数位:";
    echo $y."&nbsp;";
    echo "小鸡数位:";
    echo $z."&nbsp;";
    echo "<p>";
      }
    }
  }
      ?>

十六、PHP中的函数

      函数的定义:简单的说,函数是为了完成特定的功能而整体存在的一个代      码块。所以从函数的定义来说,函数的实质就是代码的集合,也就是一段        能独立完成某种操作的代码。
     
十七、PHP中函数的定义样式:

      function fun_name(var_name....)
       {
           /*
            这里是具体的代码
          */
        }
      所以定义一个函数,使用function关键字+函数名称+加一对半角括号,并        在括号中加上所需要的参数表,然后用一对大括号来包括所有需要执行的
      代码即可。

十八、定义函数是需要遵循的原则

      1、函数名必须依字母开头。
      2、函数名只能依字母、数字和下划线组成,而不能包含空格、标点符号及         运算符等其他特殊的符号。
      3、函数名不能与PHP中的关键字名称相同,如if、else、for等
      4、变量名不能与PHP中系统内部库函数名称相同。

十九、函数的返回值

      自定义函数中如果要设置一个返回值,可以使用如下代码

      function functionname()
      {
           //函数体
           return result;
      }
      在函数体中使用return语句再加上欲返回的内容即可。这样指定的值            result就会作为函数值被返回。

二十、函数的参数

      在PHP中函数的参数就是写在函数名称后圆括号内常量、变量、表达式,在       这几种类型中以变量使用的最广泛。
 
      函数的创建代码
  
      function functionname(var_name...)
      {
       /*
         这里是具体的代码     
        */
      }

二十一、面向对象

      面向对象的做法通常是为了完成某一个功能,要先定义一个类,并给该          类添加相应的方法。然后再为这个类初始化一个对象,让对象去执行相应        的方法,从而完成所需要的功能。

二十二、面向对象与面向过程的特点

      1、代码的封装不同。

         “面向过程”程序设计的方法使用函数或者普通的代码对数据进行操作         ,在这种方式下使用函数来处理数据,而函数又是与数据分离的,所以          面向过程仅封装了对数据的操作方法而没有封装数据。
         “面向对象”程序设计方法是以对象为中心,使用类将数据(属性)和对         数据的操作(方法)封装在一起,作为已给整体来处理,通过这样的封装          ,使得数据与操作方法的关系更加紧密。

      2、代码可维护性不同。

        “面向过程”程序设计方法以代码所要实现的功能来设计功能模块(如           函数),该种方法难以维护
        “面向对象”程序设计方法以数据位中心来描述系统,功能实现千变万          化,有时一点很小的功能改动可能会导致全盘重做,而数据则相对稳定          ,即使发生变化,只需要改动相应内容即可。所以面向对象的代码比面          向过程的代码更加容易维护。

      3、流程控制不同。

         “面向过程”程序的控制流程由程序中预定顺序来决定,所以说其流程          是死板的。
         “面向对象”程序的控制流程由运行时各种事件的实际发生来触发,而          不在由预定顺序来决定。这中流程的控制方式更加灵活,也更符合实际          需要。

      4、框架利用不同。

         如今网络技术飞速发展,网上有非常多得开源框架资源,面向对象程序          设计方法可以充分利用已有的框架产品进行二次开发;这种方面,使用          面向过程,虽然可以使用一些函数之类来完成相关功能模块的构建,但          远不如使用己有框架来的方便。

      通过以上的比较可以发现,面向对象与面向过程二者各有有缺点。在实际        工作中,如果是开发团队协同工作大型程序,最好采用面对对象编程的方        法。如果是个人开发的小型程序,而且工作量不大,可以根据实际情况采        用自己喜欢的方法。

二十三、PHP中定义一个类的语法格式:

       class classname
             {
                 var $var;
                 function functionname()
                  {
                       ....
                       statement;
                  }
             }

二十四、为类实例化对象

      $obj_name=new classname;

      以上代码中,classname为指定已经存在的类的名称,而$obj_name则为          需要对类实例化的对象。在PHP中为类实例化一个独享应该在创建类之后         ,使用"new" 关键字在跟上类的名称即可。

二十五、使用对象

      $obj_name=new classname;
      $obj_name->varname;
      $obj_name->functionname();

      以上代码中我们可以看出,PHP中调用对象的属性和方法使用"->"操作符号       加上属性的名称或方法的名称。这里需要注意,调用对象属性(变量)时不        需要再加"$"符号,而调用对象方法(函数)时需要在函数名后在加上括号。       对象属性就可以当做普通变量使用,而其他方法也可以当做普通函数使用        。

二十六、类的继承

      继承是一种由己有地类创建新类的机制,利用继承,用户可以先创建一个        共有属性的一般类,根据该一般类再创建具有特殊属性的新类。新类继承        一般类的状态和行为,并根据需要增加它自己的新的状态和行为。由继承        而得到的类称为子类,被继承的类称为父类。在php中使用关键字extends        来创建继承父类的子类。

      语法格式:

      class parent_class
 {
     var $varname
           function functionname()
              {
                .......
                statement;
              }
         }
       class child_class extends parent_class
         {
            var $var
            function function()
               {
                  .....
                  statement;
                }
         }

二十七、类的引用

 类的引用就是值在一个类中使用另一个类中定义的属性和方法。要在一  个类中引用另一个类的内容,
 可以使用如下代码格式:

 class classname
   {
      var $varname;
      function functionname()
                {
                   ......
                   statement;
                }
   }
 class otherclass
          {
             classname::functionname();
             classname::$varname;
          }
 在一个类中引用另一个类的属性和方法,需要使用类的名称加上"::"再  加上方法或者属性名称既可(方法需要跟上参数表,属性需要加美元符号  )。

二十八、类的构造方法

 类的构造函数是在为类实例化一个对象是会执行的一个方法。在PHP中使  用特殊的函数__construct()来表示类的构造方法(双下划线加construct  加上一对括号来表示)。构造函数一般用于初始化类的一些重要属性。
 其语法格式:

 class classname
   {
              var $var;
       function __construct([$var])
                 {
                      ......
                 }
          }

 在一个类中只能声明一个构造方法,而且只有在每次创建对象时调用一 
 次构造方法,不能主动地调用这个方法。所以通常用构造方法执行一些
 有用的初始化任务。如对对象属性在创建时赋初值。

二十九、检查类是否定义

 PHP系统总检查类是否被定义用 class_exists(),语法格式:

 bool class_exists(string $class_name[,bool $autoload])

三十、  返回类的方法名

 PHP中系统函数中得get_class_methods()函数,可以将类的方法以数组
 的形式返回,该函数的语法格式:

 array get_class_methods(string $class_name)

三十一、返回类的属性

 PHP还可以使用系统函数返回类中属性的名称。使用get_class_vars()即 
 可返回由类的默认属性组成的数组。该代码的语法格式:

        array get_class_vars(string $class_name)

三十二、返回对象的类名

 使用PHP中得系统函数get_class()可以返回指定对象所属的类的名称。
 该函数的语法格式如下:

 string get_class([object $obj])

三十三、检查类与对象的关系

 PHP提供了用于检查类与对象关系的关键字:instanceof,使用该关键字
 可以判断某一个对象是否是类的子类。该操作符的语法格式如下:

 $object instanceof $class_name

三十四、检查方法是否存在

 PHP中用于检查类中指定方法是否存在的函数是:method_exists()
 该函数的语法格式如下:

 bool method_exists(object $object,string $mothod_name)

三十五、检查属性是否存在

 PHP中使用property_exists()函数可以检查属性是否存在
 该函数的语法格式为:
 
 bool property_exists(mixed $class,string $property)

三十六、数据库的操作

 链接到数据库:

 使用PHP中得函数mysql_connect()可以链接到指定的MySQL服务器,
 该函数语法为:

 resource mysql_connect([string server[,string username   [,string password[,bool new_link[,int client_flags]]]]])
       
 以上代码中:参数server为服务器名称;参数username为链接服务器的
 用户名;参数password为连接密码;参数new_link为布尔型变量,指定
 是否建立一个姓的连接;参数client_flags可以是一下常量的组合,
 MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS,     MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE,
 该参数决定建立连接的客户端常量。如果成功执行函数将会建立到指定
 服务器的连接,否则将会返回FALSE。

 

发布:2007-03-31 14:47    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
南昌OA系统
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询

泛普南昌网站建设公司其他应用

南昌OA软件 南昌OA新闻动态 南昌OA信息化 南昌OA快博 南昌OA行业资讯 南昌软件开发公司 南昌门禁系统 南昌物业管理软件 南昌仓库管理软件 南昌餐饮管理软件 南昌网站建设公司