-
问题背景:
说的就是composer这套东西,当我们在自己的项目中 composer require 第三方项目以后,只需引入
require "/path/to/vendor/autoload.php",就可以轻松调用自动加载功能,但是自己的项目中如何用上这个呢?
解决方案:
composer.json 文件中新增一个配置项名为 "au...
-
问题背景:
现想获取某天是星期几?考虑使用PHP内置的date()函数,然不幸的是, 当日期小于1970年或者大于2038年时,使用date()处理会报错,这个问题其实和语言无关,和平台有关,仅对于32位机器而言会出错,俗称 Y2K38 漏洞 ,具体自己百科下。
解决方案-1:
采用PHP内置的 DateTime 类处理,代码如下:
function tra...
-
知识背景:
类似于 ...$args 的用法在PHP手册中叫: 可变数量的参数列表
代码举例:
function sum(...$input)
{
$total = 0;
array_walk($input, function($v)use(&$total){
$total += $v;
});
return $tot...
-
两者联系:
两者在某些功能上有异曲同工之处,比如都是用来将用户自定义的函数作用到数组的每一个单元上。
两者区别:
array_map 的用法是 array_map(函数名, 数组),而 array_walk 的用法是 array_walk(数组, 函数名);
array_map 的函数可以是用户自定义函数,也可以是PHP自带的函数;而 array_walk 里面的函数只能是...
-
问题场景:
1、假如我们有多个项目需要调用某些公共的工具套件,那么一般的做法都是在每个项目中单独 include 工具套件库,明显很麻烦。
2、如何利用 auto_prepend_file 一次性预加载多个文件?
解决方案-1:
如标题所示,我们可以使用PHP配置项 auto_prepend_file = "/path/to/libray/tools....
-
演示代码:
<?php
$websiete = null;
$website->name = 'blogdaren';
dprint($website);
问题结果:
PHP Warning:Creating default object from empty value
问题原因:
在操作一个非对象类...
-
两者区别:
__call() 当调用的实例方法不存在或权限不足时,会自动调用 __call() 方法。
__callStatic() 当调用的静态方法不存在或权限不足时,会自动调用 __callStatic() 方法。
演示代码:
<?php
class User
{
public...
-
array_walk() 详见手册:
https://php.net/manual/en/function.array-walk.php
array_map() 详见手册:
https://php.net/manual/en/function.array-map.php
异曲同工的演示代码:
<?php
//array_walk的callb...
-
演示代码:
<?php
namespace Website;
class Domain
{
}
var_dump(class_exists('Domain')); //false
var_dump(class_exists('\Website\Domain')); //true
问题结论:
使用 class_exits() 时...
-
问题背景:
给定一个数组:[100, 200, 300],我们希望 json_encode() 以后返回如下结构的json对象:
{"0":100,"1":200,"2":300}
举个栗子:
<?php
$input = array(
'0' => 100,
'1' => 200,
'2' => 300,
)...
-
举例说明:
<?php
$origin = array(
'k1' => 'v1',
'k2' => 'v2',
'100',
);
$replace = array(
'k1' => 'new value',
'k3' => 'v3',
'200',
);
print_r(array_merge($ori...
-
问题背景:
微信收到朋友发来一个文件 xxx.pages,我们发现其扩展名为 .pages,正常情况下,windows无法直接打开。
什么是 xxx.pages 文件?
科普下, xxx.pages 文件是用苹果电脑中自带的文档编辑器Pages编辑以后保存后产生的。
解决方案-1:
将 xxx.pages手动修改为 xxx.tar,...
-
问题背景:
workerman社区经常看到有人在问同一个问题,特意再次分享一下解决方案。
解决方案:
//向特定的组发送消息
$io->to('group name')->emit('event name', $data);
//向特定的用户发送消息:这个要注意将业务和 $socket->id 进行映射
$io->to($s...
-
不同的平台机制是有所不同的:
1、对于Linux,有两种方式:
A:通过 fork 子进程继承父进程监听句柄;
B:通过 socket的 SO_REUSEADDR 属性实现端口复用;
2、对于windows,使用的也是 socket的 SO_REUSEADDR【注意windows这个选项默认是激活的】。
Window...
-
问题背景:
比如我们想查看 资源管理器进程【explorer.exe】的父进程。
解决方案:
wmic process where Name="explorer.exe" get ParentProcessId
我就遇到了这个问题,终于找到解决办法...