当前位置:  编程技术>php
本页文章导读:
    ▪PHP实现插入排序      插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。算法描述:⒈ 从第一个元素开始,该元素可以认为已经被排序⒉ 取出下一个.........
    ▪php中类能够调用实例方法不报错的原因      学习php目前是第二天,就是喜欢深入研究这些小细节的秘密。分别用php 5.2.5和 php 5.4.3测试<?phpclass Person{function show(){         var_dump($this);echo "hello,world";}function __call($name, $args){echo.........
    ▪string 常用函数      //指定字符列表 将列表中包含的所有字符 全部转义addcslashes(string $str,string $charlist);echo addcslashes('foo[ ]','A..z'); //输出:\f\o\o\[ \]//将字符串foo[ ] ascii码在A-z之间的所有字符 全部转义 //注意:.........

[1]PHP实现插入排序
    来源:    发布时间: 2013-11-07

插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。

算法描述:

⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2
 
<?php

$arr =array(123,0,5,-1,4,15);

function insertSort(&$arr){

//先默认第一个下标为0的数是排好的数
for($i=1;$i<count($arr);$i++){
//确定插入比较的数
$insertVal=$arr[$i];
//确定与前面比较的数比较
$insertIndex=$i-1;

//表示没有找到位置
while($insertIndex>=0 && $insertVal<$arr[$insertIndex]){

//把数后移
$arr[$insertIndex+1]=$arr[$insertIndex];
$insertIndex--;
}

//插入(给$insertval找到位置了)
$arr[$insertIndex+1] = $insertVal;
}
}

insertSort($arr);
print_r($arr);
?>

 

本文链接


    
[2]php中类能够调用实例方法不报错的原因
    来源:    发布时间: 2013-11-07

学习php目前是第二天,就是喜欢深入研究这些小细节的秘密。

分别用php 5.2.5和 php 5.4.3测试

<?php
class Person{
function show(){
         var_dump($this);
echo "hello,world";
}
function __call($name, $args){
echo "call yes";
}
function __callStatic($name, $args){
echo "callStatic yes";
}
}
Person::show();
?>

 

1.这里类调用了实例方法,而且还正确的调用到了实例方法,因为没有进入__calll和__callstatic

2.无错误

 按照php的一些书籍资料的说明,应该是类能调用的方法只有类方法,而不是类的实例方法,也就是类只能调用静态方法(static method),但是这里类居然调用了实例方法,百思不得其解。找了一些相关资料,如下:

引用:

-----------------------------------------------------------------

在php文件的任何位置都可以使用 classname::methodname()来直接调用类里面公用的方法。个人觉得出现这个情况是因为
内存的堆区保存的对象仅保存的是对象的属性,对象的方法任然存放在代码区,为类的成员方法,如果使用对象来调用的类的成员方法里面不含$this的话,此时这个方法和静态数据区存放的静态方法并无明显区别。即此时对象的成员方法与该对象的静态方法并无明显区别
都并不随着调用对象的不同,而发生不同的变化。
并且成员方法本身就是在类中定义的,就是老爸和儿子的关系,区别就是一个是自己老婆生的(静态方法),另外一个是和别人老婆生的(成员方法),别人老婆生的那个儿子就管其他人叫老爸了。某一天那个私生的儿子了解情况了(无$this)。便会叫两人叫爸了。
此时便可以使用classname::methodname()

url:http://segmentfault.com/q/1010000000158671

-----------------------------------------------------------------

然后用5.4.3测试果断告警,如下:


    
[3]string 常用函数
    来源:    发布时间: 2013-11-07
//指定字符列表 将列表中包含的所有字符 全部转义
addcslashes(string $str,string $charlist);

echo addcslashes('foo[ ]','A..z');
//输出:\f\o\o\[ \]
//将字符串foo[ ] ascii码在A-z之间的所有字符 全部转义 
//注意: A-z 不能写成z-A ascii码 必须 从小到大
//echo addcslashes('foo['.']','z..A');
// 输出:\zoo['\.']

//去除字符串中的反斜线
stripcslashes

$STR = <<<EOF
\\\\
EOF;
echo $STR;
//
echo stripcslashes($STR);
/ 四个转义字符转移为1个/

本文链接


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3