PHP 函数了解总括

<?php
class Sqlist{
        public $data=array();
        public $length=0;
}
//插入元素
function listInsert(&$sqlist,$i,$e){
        //位置是否超出范围
        if($i<1 && $i>$sqlist->length+1){
                return false;
        }   
        //从插入位置开始,后面的所有元素都退一位
        if($i<=$sqlist->length){//要插入的位置不是在尾部
                for($k=$sqlist->length-1;$k>=$i-1;$k--){
                        $sqlist->data[$k+1]=$sqlist->data[$k];
                }   
        }   
        //新元素插入
        $sqlist->data[$i-1]=$e;
        //长度加1
        $sqlist->length++;
        return true;
}
//获取元素
function getElement($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        return true;
}
//删除元素
function listDelete($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        //如果是最后一个元素
        if($i!=$sqlist->length){
                //在删除位置之后的元素,往前移动一位
                for($k=$i-1;$k<=$sqlist->length-1;$k++){
                        $sqlist->data[$k]=$sqlist->data[$k+1];
                }   
        }   

        $sqlist->length--;
}

//插入线性表
$sqlist=new Sqlist();
listInsert($sqlist,1,"Tau");
listInsert($sqlist,1,"Shihan");
//获取元素
$e="";
getElement($sqlist,2,$e);
echo $e."\n";//输出Tau

//删除元素
listDelete($sqlist,1,$e);


var_dump($sqlist);

PHP NULL

极度规的NULL值表示一个变量没有值。NULL类型唯一可能的值就是NULL。
Note:NULL类型是PHP4引进的。

在下列景况下一个变量被认为是NULL:
+被赋值为NULL
+尚未被赋值
+被unset( )

Example #4 递归函数

递归函数简单的知情就是投机调用自己,但是要幸免递归函数/方法调用当先100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。
无限递归可就是编程错误。

function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}

recursion(12);

1.PHP中的数组实际上是一动不动映射,可以算作数组,列表,散列表,字典,集合,栈,队列,不是永恒的长度
2.数组定义中三个单元都采取了同一个键名,则只利用了最后一个,以前的都被遮住了
3.想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的先头加上记号
&
4.PHP
的引用是别名,就是七个区其余变量名字指向相同的情节;“默许意况下对象是因而引用传递的”。但实际那不是完全正确的,当对象作为参数传递,作为结果回到,或者赋值给其余一个变量,此外一个变量跟原来的不是援引的涉嫌,只是他们都保存着同一个标识符的正片

Warning

自PHP4.3.0起,上述的索引生成方法改变了。近年来一经给一个当下最大键名是负值的数组添加一个新值,则新生成的目录将为(0)。从前新生成的目录为如今最大索引加一,和正在的目录相同。
动用TRUE作为键名将使integer1成为键名。使用FALSE作为键名将使integer0成为键名。使用NULL作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或掩盖)一个用空字符串作为键名的值,那和用空的方括号不同。
无法用数组和对象作为键(key)。那样会造成一个警示:Illegal offset type。

<?phpclass Exception{protected $message = 'Unknown exception'; // 异常信息protected $code = 0; // 用户自定义异常代码protected $file; // 发生异常的文件名protected $line; // 发生异常的代码行号function __construct($message = null, $code = 0);final function getMessage(); // 返回异常信息final function getCode(); // 返回异常代码final function getFile(); // 返回发生异常的文件名final function getLine(); // 返回发生异常的代码行号final function getTrace(); // backtrace() 数组final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息/* 可重载的方法 */function __toString(); // 可输出的字符串}?>

函数的参数

  

PHP本文档中选拔的伪类型

用户可以用自定义的要命处理类来扩大 PHP
内置的要命处理类。以下的代码表明了在放权的不行处理类中,哪些属性和章程在子类中是可访问和可继续的。译者注:以下那段代码只为表达内置相当处理类的构造,它并不是一段有实际意义的可用代码。

拍卖string用的放权函数

最简便易行直接出口字符串
echo() 输出字符串
print()输出一个或多个字符串。
printf() 输出格式化的字符串。
[strlen()] 重临字符串的尺寸。
[substr()] 再次回到字符串的一片段。
[strtolower()]把字符串转换为小写字母。
[strtoupper()]把字符串转换为大写字母。
[strstr()]追寻字符串在另一字符串中的第三遍出现(对大小写敏感)。
[str_replace()]轮换字符串中的一些字符(对大小写敏感)。
[explode()]把字符串打散为数组。
[implode()]回去由数组元素组合成的字符串。[join()]和那几个函数一样
mb_strpos — 查找字符串在另一个字符串中首次面世的职位
[strcmp()]正如多个字符串(对大小写敏感)看样子过旁人用那函数比较三回输入的密码

Note:

在 PHP4
中,必须利用引用来创设一个对准实际object,而不是它的一个拷贝。详情请见引用的表达。
In PHP4, it was necessary to use a reference to create a callback that
points to the actual object, and not a copy of it. For more details, see
References Explained.

12.生成器

收获PHP所有内置函数

echo "<pre>";
print_r(get_defined_functions());

如上内容都很愚蠢和精炼,在接下去我会在那里一连切磋PHP魔力。

语法

生成器允许你在 foreach代码块中写代码来迭代一组数据而不需求在内存中开创一个数组,
那会使你的内存达到上限,或者会占用可观的拍卖时间。相反,你可以写一个生成器函数,如同一个普通的自定义函数一样,
和日常函数只回去一遍区其他是,
生成器可以按照需求 yield 多次,以便生成须要迭代的值。

拍卖files、Date、Directory、GD库、等用的放置函数

本身我用的不是比比皆是,明日在这边暂时没有资格说太多,需求话提议看看PHP官方手册呢,操作数据库的停放函数在那边也不说啊。

自我还会用到收获唯一的字符串用来做图片文件名等

//确保文件名唯一,防止重名产生覆盖
- $uniName = md5(uniqid(microtime(true),true)).'.'.$ext;
- $uniName = uniqid(rand(0,time())).'.'.$ext;

  private function createCheckCode(){
  //这里主要产生随机码,从2开始是为了区分1和l
  $code="23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ";
  $string='';
  for($i=0; $i < $this->codeNum; $i++){
  $char=$code{rand(0, strlen($code)-1)};
  $string.=$char;
  }
  return $string;
  }

语法

NULL类型唯有一个值,就是深浅写不灵活的第一字NULL。

<?php
$var = NULL;
?>

Example #1 体现函数用途的伪代码

<?php
function aierui()
{
    # 业务逻辑
}

?>

发表评论

电子邮件地址不会被公开。 必填项已用*标注