PHP5 中的常量 PHP 面向对象

 更新时间:2016年11月25日 16:29  点击:1688

<?
//声明一个final类Math
class Math{
const PI = 3.14;
public function __toString(){
return "这是Math类。";
}
//这里写了一个算圆面积的方法.使用了Const常量,
//注意使用的方法,类似与静态变量.
public final function areaOfCircular($r){
return $r * $r * self::PI ;
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
public function setPI($a){
self::PI = 3.1415;
}
}
echo Math::PI ;
?>

Parse error: parse error in E:PHPProjects est.php教程 on line 17


<?
//声明一个final类Math
class Math{
const PI = 3.14;
public function __toString(){
return "这是Math类。";
}
//这里写了一个算圆面积的方法.使用了Const常量,
//注意使用的方法,类似与静态变量.
public final function areaOfCircular($r){
return $r * $r * self::PI ;
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
echo Math::PI ;
?>

在PHP5中 const定义的常量与定义变量的方法不同,不需要加 $ 修饰符。const PI = 3.14; 这样就可以。
而使用const 定义的常量名称一般都大写,这是一个约定,在任何语言中都是这样。
如果定义的常量由多个单词组成,使用 _ 连接,这也是约定。
比如, MAX_MUMBER 这样的命名方式。一个良好的命名方式,是程序员必须注意的。
类中的常量使用起来类似静态变量,不同点只是它的值不能被改变。我们使用 类名::常量名 来调用这个常量。

 

对于php文件操作那么关于在指定的位置插入数据就比较复杂了,下面我们就来看看关系在文件指定行插入数据实例吧。

$arrInsert = insertContent("array.php", "abcdef", 3, 10);
unlink("array.php");
foreach($arrInsert as $value)
{
    file_put_contents("array.php", $value, FILE_APPEND);
}
 
 
function insertContent($source, $s, $iLine, $index) {
    $file_handle = fopen($source, "r");
    $i = 0;
    $arr = array();
    while (!feof($file_handle)) {
       
       $line = fgets($file_handle);
       ++$i;
       if ($i == $iLine) {
            if($index == strlen($line)-1)
                $arr[] = substr($line, 0, strlen($line)-1) . $s . " ";
            else
                $arr[] = substr($line, 0, $index) . $s . substr($line, $index);
       }else {
       
               $arr[] = $line;
       }
    }
    fclose($file_handle);
    return $arr;
}
//在多数据我们存储数据都是用数据库教程来操作,上面我们就是把数据以X格式存在文本中了,现在我要像操作数据库一样的,想删除那行就那行,保存数据也一样,怎么读取第几行就第几行了,所以我就写出来了php 在文件指定行插入数据实例哦。
?>
$iLine:为第几行,$index为第几个字符之前

Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjects est.php教程 on line 14


<?
//声明一个final类Math
class Math{
public static $pi = 3.14;
public function __toString(){
return "这是Math类。";
}
public final function max($a,$b){
return $a > $b ? $a : $b ;
}
}
//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
public final function max($a,$b){}
}
//执行会出错,final方法不能被重写。

?>
<?
//声明一个final类Math
final class Math{
public static $pi = 3.14;

public function __toString(){
return "这是Math类。";
}
}
$math = new Math();
echo $math;

//声明类SuperMath 继承自 Math类
class SuperMath extends Math {
}
//执行会出错,final类不能被继承。

?>

Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjects est.php on line 16

 
 先看一维数据排序的实例asort()函数和ksort()函数
 
 <?php
 
 //asort()函数以数组的值升序为准
 $mix = array("Clalei"=>10,"Bill"=>50,"Aala"=>100);
 asort($mix);
 print_r($mix);
 //ksort()函数以数组的关键字升序为准
 $mix = array("Clalei"=>100,"Bill"=>50,"Aala"=>10);
 ksort($mix);
 print_r($mix);
 
 ?>
 
 一维数据排序二
 
 sort()函数,可将数组按字母或是数字的升序(从低到高)来进行排序:
 <?php
 
 $name = array("Clalei","Bill","Aala");
 sort($name);
 for($i=0;$i<3;$i++){
 echo $name[$i];
 }
 echo "<br />";
 $price = array(100,50,10);
 sort($price);
 for($i=0;$i<3;$i++){
 echo $price[$i]." | ";
 }
 
 ?>
 
 好了现在来看看二维数据库教程排序实例代码

 $data[] = array('volume' => 67, 'edition' => 2);
 $data[] = array('volume' => 86, 'edition' => 1);
 $data[] = array('volume' => 85, 'edition' => 6);
 $data[] = array('volume' => 98, 'edition' => 2);
 $data[] = array('volume' => 86, 'edition' => 6);
 $data[] = array('volume' => 67, 'edition' => 7);
 
 本例中将把 volume 降序排列,把 edition 升序排列。
 
 现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。
 // 取得列的列表
 foreach ($data as $key => $row) {
  $volume[$key]  = $row['volume'];
  $edition[$key] = $row['edition'];
 }
 
 // 将数据根据 volume 降序排列,根据 edition 升序排列
 // 把 $data 作为最后一个参数,以通用键排序
 array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
 
 数据集合现在排好序了,结果如下:
 volume | edition
 -------+--------
  98 |       2
  86 |       1
  86 |       6
  85 |       6
  67 |       2
  67 |       7

二维数组排序三

array_multisort() 对二维数组进行排序
数组$roughData,我们打算按照accurancy排序。

Array(    [0] => Array        (            [username] => 10yl            [accuracy] => 0.00        )    [1] => Array        (            [username] => 11yl            [accuracy] => 1.00        )    [2] => Array        (            [username] => 12yl            [accuracy] => 0.00        )    [3] => Array        (            [username] => 13yl            [accuracy] => 1.00        ))
方法:
(1)提取accuracy列数组

foreach ($roughData as $key => $row) {
            $usernames[$key] = $row['username'];
            $accuracy[$key] = $row['accuracy'];
}

(2)进行排序
array_multisort($accuracy, SORT_ASC,$roughData);

当print_r($roughData);后我们将得到一个按accuracy升序排序的二维数组


再来看个简单实例用二维数组排序方法

<?php
$array[] = array("age"=>20,"name"=>"li");
$array[] = array("age"=>21,"name"=>"ai");
$array[] = array("age"=>20,"name"=>"ci");
$array[] = array("age"=>22,"name"=>"di");
 
foreach ($array as $key=>$value){
 $age[$key] = $value['age'];
 $name[$key] = $value['name'];
}
 
array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
print_r($array);
?>

function fPageCount($TotalResult,$numPerPage,$Page){
    $NaviLength='10' ; //显示数量
    $showMorePageGo_Type_=0; //跳转样式
    $int_showNumberLink_='十';
    $nonLinkColor_="#999999";
    $toF_="<font face=webdings title='首页'>9</font>" ;
    $toP10_=" <font face=webdings title='上十页'>7</font>";
    $toP1_=" <font face=webdings title='上一页'>3</font>";
    $toN1_=" <font face=webdings title='下一页'>4</font>";
    $toN10_=" <font face=webdings title='下十页'>8</font>";
    $toL_="<font face=webdings title='最后一页'>:</font>";
    $page_index = "";

    $tpagecount = ceil($TotalResult/$numPerPage);
$nowCoolPage=ceil($Page/$NaviLength);
    $toPage_ = $_SERVER['QUERY_STRING'];
    if ( $toPage_ == '' ) {
       $toPage_ = "?page=";本人原创php通用翻页类,支持上*页和下*页..
    }else {
       $toPage_ = preg_replace("/&?page=d+/", '', $toPage_);
       $toPage_ = "?".$toPage_."&page=";
    }
     
if($nowCoolPage == 1){
        $page_index.="<font color=".$nonLinkColor_." title='首页'>".$toF_."</font> ";
        $page_index.="<font color=".$nonLinkColor_." title='上".$int_showNumberLink_."页'>".$toP10_."</font> ";
    }else{
        $preRow =  $Page-$NaviLength;
  $page_index.="<a href=".$toPage_."1 title='首页'>".$toF_."</a> ";
  $page_index.="<a href=".$toPage_.$preRow." title='上".$int_showNumberLink_."页'>".$toP10_."</a> ";
    }
    $upRow   = $Page-1;
    $downRow = $Page+1;
    if ($upRow>0){
       $page_index.="<a href=".$toPage_.$upRow." title='上一页'>".$toP1_."</a> ";
    }else{
       $page_index.="<font color=".$nonLinkColor_." title='上一页'>".$toP1_."</font> ";
    }
     
for($i=1;$i<=$NaviLength;$i++){
         $nowPage=($nowCoolPage-1)*$NaviLength+$i;
         if($nowPage!=$Page){
             if($nowPage<=$tpagecount){
                 $page_index.="  <a href=".$toPage_.$nowPage.">" .$nowPage. "</a> ";
             }else{
                 break;
             }
         }else{
             if($tpagecount != 1){
                $page_index.="<b>".$nowPage."</b>";
             }
         }
      }
     if ($downRow <= $tpagecount){
         $page_index.="<a href=".$toPage_.$downRow." title='下一页'>".$toN1_."</a> ";
     }else{
         $page_index.="<font color=".$nonLinkColor_." title='下一页'>".$toN1_."</font> ";
     }
     if($nowCoolPage == $tpagecount){
         $page_index.=" <font color=".$nonLinkColor_." title='下".$int_showNumberLink_."页'>".$toN10_."</font> ";
         $page_index.="<font color=".$nonLinkColor_." title='尾页'>".$toL_."</font>";
     }else{
         $nextRow = $Page+$NaviLength;
         $theEndRow = $tpagecount;
         $page_index.=" <a href=".$toPage_.$nextRow." title='下".$int_showNumberLink_."页'>".$toN10_."</a> ";
         $page_index.="<a href=".$toPage_.$theEndRow." title='尾页'>".$toL_."</a>";
     }
    if ($showMorePageGo_Type_ ==1){
      $Show_Page_i = $Page + 1 ;
    if ($Show_Page_i>$tpagecount) $Show_Page_i = 1;
    $page_index.="  跳转<input type='text' id='skip' value='' onkeyup='this.value=this.value.replace(/[^d]+/,'')' style='width:40px'/>  <input type='button' value='确定' class='btn' onclick='location.href='?page='+$('skip').value+'".$toPage_."';'/>n";
       }else{
       $page_index.=" 跳转:<select name='select' size='1' style='font-size: 12px' onchange='javascript:window.location.href=this.options[this.selectedIndex].value'>";
     for($i=1;$i<=$tpagecount;$i++){
     if($Page==$i){
        $selected=" selected";
     }else{
        $selected="";
        }
        $page_index.=" <option value=".$toPage_.$i;
        $page_index.=$selected." style='color:#FF0000'";
        $page_index.=">第".$i."页</option>";
     }
        $page_index.="</select>";
   }
        $page_index.=$p_.$sp2_."  每页<b>".$numPerPage."</b>个记录,现在是:<b><span class='tx'>".$sp2_.$Page."</span>/".$tpagecount."</b>页,共<b><span id='recordcount'>".$sp2_.$TotalResult."</span></b>个记录。";
    return $page_index;
}


例子:<?php echo fPageCount($TotalResult,$numPerPage,$page)?>   $TotalResult 代表总数 $numPerPage 每页显示数量 $page 页码

[!--infotagslink--]

相关文章

  • java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • JavaScript预解析,对象详解

    这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
  • 如何在Spring WebFlux的任何地方获取Request对象

    这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26
  • 牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作

    只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作。这就需要我们知道如何将jQuery对象和DOM的相互转换的方法。1...2015-10-30
  • js如何打印object对象

    js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下: fu...2015-10-21
  • 替换json对象中的key最佳方案

    本文给大家介绍如何替换json对象中的key,通过实例代码给大家介绍key的替换方法,代码也很简单,需要的朋友参考下吧...2021-06-02
  • javascript self对象使用详解

    这篇文章主要介绍了javascript self对象使用详解的相关资料,需要的朋友可以参考下...2016-10-20
  • C++变量,常量,数组和字符串详解

    这篇文章主要介绍了C++变量,常量,数组和字符串,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助...2021-10-21
  • ActiveX部件不能创建对象:dm.dmsoft代码:800A01AD

    vbs调用插件报:ActiveX部件不能创建对象,代码:800A01AD,一般是因为病毒导致dll文件丢失或者64系统问题导致,需要的朋友可以参考下...2020-06-30
  • 理解JavaScript事件对象

    这篇文章主要为大家介绍了JavaScript事件对象,了解JavaScript事件...2016-01-26
  • Bootstrap媒体对象的实现

    在web页面中,图片居左,内容居右排列,是非常常见的效果,它也就是媒体对象,它是一种抽象的样式,可以用来构建不同类型的组件。本文给大家介绍Bootstrap媒体对象的实现,感兴趣的朋友一起学习吧...2016-05-04
  • Xml中使用foreach遍历对象实现代码

    这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
  • 解决SpringCloud Feign传对象参数调用失败的问题

    这篇文章主要介绍了解决SpringCloud Feign传对象参数调用失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-24
  • JS实现简单面向对象的颜色选择器实例

    这篇文章主要介绍了JS实现简单面向对象的颜色选择器,以完整实例形式分析了JavaScript基于面向对象实现颜色选择器的具体步骤与实现技巧,需要的朋友可以参考下...2016-04-23
  • javascript创建对象的几种模式介绍

    下面小编就为大家带来一篇javascript创建对象的几种模式介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考...2016-05-09
  • vue - props 声明数组和对象操作

    这篇文章主要介绍了vue - props 声明数组和对象操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30
  • JavaScript Blob对象原理及用法详解

    这篇文章主要介绍了JavaScript Blob对象原理及用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-14
  • 对象题目的一个坑 理解Javascript对象

    这篇文章主要介绍了Javascript对象,特别为大家分享了对象题目的一个坑,提供了解题思路,感兴趣的小伙伴们可以参考一下...2015-12-24
  • HTML5 FileReader对象的具体使用方法

    这篇文章主要介绍了HTML5 FileReader对象的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30