欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

句柄是专属于windows操作系统下的概念吗

程序员文章站 2022-05-21 14:29:47
...
为啥要提这个问题呢,因为PHP下似乎也经常用到这一逻辑,所以想搞明白点。百度了一下,似乎 句柄是windows下的产物,那么别的系统如 Linux 、UINX等操作系统下也有这个玩意吗?另外还有 勾子这一概念,似乎句柄也是勾子,那么勾子又是怎么回事呢?总感觉PHP乱七八糟的。
还有: $_mysqli=new mysqli('cocalhost','root','yangfan','cms');这句话中,为啥说 $_mysqli就是句柄呢?
我的理解它是一个变量啊


回复讨论(解决方案)

handle
n. [建] 把手;柄;手感;口实
vt. 处理;操作;运用;买卖;触摸
vi. 搬运;易于操纵

习惯译做 句柄
实则是系统资源的索引

在程序中传递一个资源实体显然不如只传递其索引号来的方便

在 php 中
$_mysqli=new mysqli('cocalhost','root','yangfan','cms');
$_mysqli 是对象,当然对象的引用传递,也可以说是句柄
$_mysql = mysql_connect('cocalhost','root','yangfan');
$_mysql 是资源,也就是句柄

handle
n. [建] 把手;柄;手感;口实
vt. 处理;操作;运用;买卖;触摸
vi. 搬运;易于操纵

习惯译做 句柄
实则是系统资源的索引

在程序中传递一个资源实体显然不如只传递其索引号来的方便

在 php 中
$_mysqli=new mysqli('cocalhost','root','yangfan','cms');
$_mysqli 是对象,当然对象的引用传递,也可以说是句柄
$_mysql = mysql_connect('cocalhost','root','yangfan');
$_mysql 是资源,也就是句柄


变量和资源有什么区别呢

这么说吧:
资源是真实存在的,比如你这个人吧
变量是载体,或者说是名字。比如你的身份证上绝不会是 shopnc_02,但他都代表着你这个人

句柄是系统(如数据库、操作系统)所管理的内存块或对象,并不是window的概念

在window中窗体的引用为句柄 这是因为官方这么叫了 然后函数 如 HWND hWnd = AfxGetMainWnd()->m_hWnd ;看这类型名称 就是句柄

其实打开的文件 打开的目录 打开的数据库连接都可以称为句柄 但是大家不这么叫而已 都叫“数据库连接” "文件描述符"

在PHP可以把resource归属为句柄