PHP笔记网

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2020-02-09 22:25:23  修改时间:2024-10-24 01:11:12  分类:11.PHP基础  编辑

提问:对外的 PHP 类库,如何拥有自己的命名空间, 同时又不破坏所在项目的命令空间风格?

解决方案:

1、首先得学习一下 php函数 spl_autoload_register(),详情查看:PHP中spl_autoload_register()函数的用法

2、在 PHP类库文件夹的根目录下,增加一个 autoload.php 文件,内容参考如下:

作者:Albert.Wen  添加时间:2015-12-15 16:09:00  修改时间:2024-11-10 21:10:08  分类:11.PHP基础  编辑

后台往往需要导出各种数据到 Excel文档中。通常我们是导出 .csv文件格式,PHP导出函数参考代码如下:

/**
 * 导出数据到CSV文件
 *
 * @param array $data 二维数组(模拟数据表记录)
 * @param array $titleList 标题数组列表
 * @param string $fileName CSV文件名
 */
function csv_export(&$data, $titleList = array(), $fileName = '')

作者:Albert.Wen  添加时间:2017-10-29 09:10:16  修改时间:2024-10-09 23:38:50  分类:11.PHP基础  编辑

 对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:

  1. 什么是TCP/IP、UDP?
  2. Socket在哪里呢?
  3. Socket是什么呢?
  4. 你会使用它们吗?
作者:Albert.Wen  添加时间:2016-02-18 15:03:01  修改时间:2024-11-20 04:52:29  分类:11.PHP基础  编辑

延迟静态绑定

在PHP5.3以后引入了延迟静态绑定。看下面这段代码:

<?php
class A {
	public static function who() {
		echo __CLASS__;
	}

	public static function test() {
		self::who();
	}
}

class B extends A {
	public static function who() {
		echo __CLASS__;
	}
}

B::test();
?>

上面的代码输出了A,但是我希望它输出B,这就是问题的所在。这也是self和__CLASS__的限制。使用self::或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类。所以,这就很好的解释了为什么上面的代码输出了A。但是,如果我们需要输出B呢?

作者:Albert.Wen  添加时间:2017-10-27 09:57:59  修改时间:2024-10-09 23:40:17  分类:11.PHP基础  编辑

今天用rtrim()函数时遇到了一个奇怪的问题:

echo rtrim('

</div>', '</div>'); // 输出为 <p echo ltrim('www.cnblogs.com','www.'); // 输出为 cnblogs.com

以上的输出结果有点出人意料,本来我想第一行应该输出

,第二行会输出cnblogs.com。

作者:Albert.Wen  添加时间:2018-05-05 18:17:37  修改时间:2024-11-19 02:51:10  分类:11.PHP基础  编辑
作者:Albert.Wen  添加时间:2018-04-28 12:34:56  修改时间:2024-10-11 09:41:13  分类:11.PHP基础  编辑

一、十进制(decimal system)转换函数

1、十进制转二进制 decbin() 函数,如下实例

echo decbin(12);  // 输出 1100
echo decbin(26);  // 输出 11010

decbin -- 十进制转换为二进制

说明

string decbin ( int number )

返回一字符串,包含有给定 number 参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。

作者:Albert.Wen  添加时间:2016-04-09 23:59:51  修改时间:2024-10-09 23:43:32  分类:11.PHP基础  编辑

array_walk 有个原生递归函数 array_walk_recursive($arr, 'function', 'words'),但是 array_map 却没有对应的递归函数 array_map_recursive,我们可以自定义一个:

作者:Albert.Wen  添加时间:2017-10-26 17:51:39  修改时间:2024-11-18 20:35:42  分类:11.PHP基础  编辑

PHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!我们先看一个例子:

<?php
$s = str_repeat('1',255);	//产生由255个1组成的字符串
$m = memory_get_usage();	//获取当前占用内存
unset($s);
$mm = memory_get_usage();	//unset()后再查看当前占用内存
echo $m-$mm;
?>
作者:Albert.Wen  添加时间:2017-10-26 14:17:04  修改时间:2024-11-13 22:26:46  分类:11.PHP基础  编辑

数组是PHP的灵魂,非常强大,但有时候面向对象编程也是挺方便的,数组 与 对象 之间切换也是常有的事:

/**
 * 数组 转 对象
 *
 * @param array $arr 数组
 * @return object
 */
function array_to_object($arr) {
	if (gettype($arr) != 'array') {
		return;
	}
	foreach ($arr as $k => $v) {
		if (gettype($v) == 'array' || getType($v) == 'object') {
			$arr[$k] = (object)array_to_object($v);
		}
	}

	return (object)$arr;
}

/**
 * 对象 转 数组
 *
 * @param object $obj 对象
 * @return array
 */
function object_to_array($obj) {
	$obj = (array)$obj;
	foreach ($obj as $k => $v) {
		if (gettype($v) == 'resource') {
			return;
		}
		if (gettype($v) == 'object' || gettype($v) == 'array') {
			$obj[$k] = (array)object_to_array($v);
		}
	}

	return $obj;
}