php 自动加载

09 182016

厌倦了PHP的各种require,require_once,include,include_once

自动加载让代码更简洁,也是很多框架使用的自动加载方法:


//index.php

function __autoload($name) {
	include $name.'.php';
}

try {
    $obj = new abc();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}

运行index.php时,它会在试图使用尚未被定义的类时自动调用,通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。


详细请查看手册:http://php.net/manual/zh/language.oop5.autoload.php


Tip

spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载。因此,不再建议使用 __autoload() 函数,在以后的版本中它可能被弃用


php7中没有弃用

blob.png


下面学习一下官方推荐的方法:

spl_autoload_register() 

php7 安装 xdebug 插件

09 182016

php7 安装 xdebug 插件的方法和之前版本没有什么异同


一、windwos环境下

 1、下载xdebug插件

   下载地址:https://xdebug.org/download.php

 2、php配置文件中安装

    • 下载文件:php_xdebug.dll 拷贝到 ext 目录

    • 打开php.ini

    • 配置文件底部加入



    • [Xdubug]
      zend_extension="D:\app\phpStudy\php55n\ext\php_xdebug.dll"
    • 重启环境

    • phpinfo() 看到下面的内容表示配置成功!

    • 简单配置

    • [Xdubug]

      zend_extension="D:\app\php7\ext\php_xdebug.dll"

      xdebug.auto_trace=1

      xdebug.collect_params=1

      xdebug.collect_return=1

      xdebug.trace_output_dir="D:\app\php7/xdebug/trace"

      xdebug.profiler_enable=1

      xdebug.profiler_output_dir="D:\app\php7/xdebug/profiler"

      xdebug.remote_enable=1

      blob.png

   

排序算法之 冒泡法排序

09 012016
// +----------------------------------------------------------------------
// | description: 冒泡法排序
// +----------------------------------------------------------------------
// | author: lidl
// +----------------------------------------------------------------------
// | date: 2016年9月1日
// +----------------------------------------------------------------------
// | Author: lidl <84839733@qq.com><http://1m85.com>
// +----------------------------------------------------------------------

$arr = array(8,6,2,1);

$len = count($arr);

for($i = 1; $i<= $len; $i++){
	
	for($j = 1; $j< $i; $j++){
		
		if($arr[$j] < $arr[$j-1]){
			$temp 		= $arr[$j];
			$arr[$j] 	= $arr[$j-1];
			$arr[$j-1] 	= $temp;
		}
	}
}


print_r($arr);


echo '<br/>';

for($i = 1; $i <= $len; $i++){
	
	for($j = $len-1; $j >= 1; $j--){
		
		if($arr[$j] > $arr[$j - 1]){
			$temp 		= $arr[$j];
			$arr[$j] 	= $arr[$j-1];
			$arr[$j-1] 	= $temp;
		}
	}
}

print_r($arr);

冒泡法排序原理:N个数字,循环N次,每次将最大数排到最后或把最小数拍到最前。效果上就像一个气泡从
下面浮到上面,所以成为冒泡:如下图

blob.png

PHP获取地址栏扩展名的几种方法

09 012016
1、string strrchr ( string $haystack , mixed $needle )
//该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。
参数
haystack
在该字符串中查找。
needle
如果 needle 包含了不止一个字符,那么仅使用第一个字符。该行为不同于 strstr()。
如果 needle 不是一个字符串,那么将被转化为整型并被视为字符顺序值。

实例:

test.php

$url = $_SERVER['PHP_SELF'];
echo strrchr($url, '.');

//输出 .php


2、

$url = $_SERVER['PHP_SELF'];
$row = explode('.', $url);
echo end($row);

输出php

3、
$url = $_SERVER['PHP_SELF'];
//int strrpos ( string $haystack, string $needle[, int $offset = 0 ] )
$off = strrpos($url, '.'); //获取最后位置
string substr ( string $string , int $start [, int $length ] )
echo substr($url,$off+1);  //获取扩展名

4、
$url = $_SERVER['PHP_SELF'];
$row = pathinfo($url, PATHINFO_EXTENSION );
echo $row;