为啥要提这个问题呢,因为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归属为句柄