hpinke

hpinke 查看完整档案

厦门编辑福建师范大学  |  电子信息工程 编辑  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

hpinke 回答了问题 · 1月19日

thinkphp5在windows服务器上经常出现写入缓存失败

win10? 换个不需要权限的目录试试。

关注 3 回答 2

hpinke 回答了问题 · 1月18日

解决thinkphp怎么用指定的ID取Session数据内容?

你这是要修改 session_id()的值吗?PHP版本>=7.2?

关注 4 回答 3

hpinke 发布了文章 · 1月17日

栈的解读

image

前沿

栈广泛应用在各种软件系统中,所以这块的知识点我们也要好好掌握起来。

定义

(stack)是限定仅在表尾进行插入或删除操作的线性表。

简单的来说就是一种可以实现"先进后出" 的存储结构

栈类似于箱子

分类

栈一般分为两类

  • 静态栈 (类似于用数组实现)
  • 动态栈 (类似于用链表实现)

算法

这边我们来看看 栈的出栈 和入栈的伪算法

先来看看入栈

image

//伪代码
void push(struct Stack *pS, int val)
{
    struct Node * pNew = (struct Node *)malloc(sizeof(struct Node));
    pNew->data = val;
    pNew->pNext = pS->pTop; 
    pS->pTop = pNew;
    return;
}
  1. 首先初始化的时候 pTop 和 pBottom 都指向空
  2. 然后我们创建一个节点 pNew, 让他指向下一个节点的指针域。这里我们要注意,这里应该指向的是 pTop所指向的指针域
  3. 最后把 pNew 赋值给 pTop, 完成pTop 指向新的节点。

再来看看出栈 写法

image

//伪代码
bool pop(struct Stack *pS, int * pVal)
{    
        struct Node * q = pS->pTop;
        *pVal = q->data;
        pS->pTop = q->pNext;
        free(q);
        q = NULL;
        return true;    
}
  1. 出栈算法看过去时简单的,但有点要特别注意,就是要记得释放内存,避免野指针
  2. 所以我们定义一个 指针变量 q 来做临时存储使用。
  3. 最后我们在free()释放内存

致谢

感谢你看完这篇文章,有什么不对的地方欢迎指出,谢谢🙏

查看原文

赞 0 收藏 0 评论 0

hpinke 回答了问题 · 1月16日

tp5提示控制器名不存在

看下官方的定义吧:

控制器文件通常放在application/module/controller下面,类名和文件名保持大小写一致,并采用驼峰命名

所以你控制器要放在 controller 目录里面

关注 4 回答 3

hpinke 回答了问题 · 1月14日

设置session cookie_lifetime退出浏览器不失效 没用呀

修改了php.ini 要记得重启PHP-FPM

然后查看phpinfo() 看看session里面的参数有没有改过来

关注 3 回答 2

hpinke 回答了问题 · 1月12日

webstorm git环境下 安装 node_modules 后 文件变更列表一直显示更新中不加载数据

image

打开图片的设置。添加进node_modules,之后点Apply,然后重启软件。实在不行可以在重启电脑试试

关注 3 回答 3

hpinke 回答了问题 · 1月12日

解决关于sizeof的概念

是这样的,
sizeof(int) 返回的是整型占用的字节数
sizeof(char) 返回的是字符占用的字节数

关注 2 回答 1

hpinke 回答了问题 · 1月11日

nginx的配置问题?

说实话不理解你说的。

因为你root都定义到了public下面了,默认访问就是访问到这个目录下
举个例子 xx.com/robots.txt 就是定位到 xx.com/public/robots.txt

给你看个api的例子吧,希望对你有用

location /api/ {
        index  index.php index.html index.htm;
         #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
         if (!-e $request_filename)
         {
            rewrite ^/api/(.*)$ /api.php?s=$1;
         }
    }

关注 3 回答 2

hpinke 发布了文章 · 1月10日

C PHP Go 指针探究

image

前沿

在我学过的语言中有C语言,PHP,Go。今天我们来探讨下,在这些语言中指针的用法有什么不同呢?

定义

我们先来看个个语言中指针的形式吧

C语言中

int i = 5;
int * p = &i;
printf("%p", p);
//结果是 0x7ffef3f4ff64

PHP中

$c = 5;
$b = &$c;
echo $b;
//结果是 5

Go中

var i int = 5;
var p *int = &i 
fmt.Printf("%p", p);
//结果是 0xc0000b602021

从上面我们可以看出来,C和Go在指针的定义和调用上基本相同,区别在于Go没有指针运算。

那C和PHP就差距很大了,首先PHP就没有指针的概念,在PHP中主要说的都是引用。引用意味着用不同的名字访问同一个变量内容,打个比方:它就像一个人有两个不同的名字,它们并不是实际的内存地址

比较

看一段PHP的代码

<?php
    $a = 1;
    $b = &$a;
    echo $a; //1
    unset($b); // unset $b
    echo $a; //1 it's OK

在来看看C语言中的代码

#include<stdio.h>
int main()
{
    int a = 1;
    int *b = &a;
    printf("%d\n", a); //1
    free(b);
    printf("%d\n", a); // 报错invalid pointer
    return 0;
}

从上面就可以看出来,差别还是很大的。 引用和指针并不是相同的概念,指针是针对真实内存的操作,引用是针对指向这个内存的符号表的操作。从操作系统的快捷方式来说,快捷方式是可以删的,这就是PHP的引用。而C不仅删了快捷方式,还把原文件也给删除了。

虽然说PHP的底层说C写的,但是PHP的开发者没有暴露出C的原始指针的能力。

致谢

感谢你看完这篇文章,有什么不对的地方欢迎指出,谢谢🙏

查看原文

赞 0 收藏 0 评论 0

hpinke 回答了问题 · 1月6日

解决phpstorm 错误检测导致的红色波浪线

image.png
我的版本也是2019.3的,你点击右下角的小人头,就在分支旁边的那个,然后把PHP划到None就可以了

关注 3 回答 3

认证与成就

  • 获得 1 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2020-07-08
个人主页被 465 人浏览