-
Notifications
You must be signed in to change notification settings - Fork 884
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
交流&吐槽 #3
Comments
这样看太抽象了,给些实际的gdb调试例子会好些 |
好的,后续会补充些 @whiteHat001 |
@pangudashu ,我最近在用C++写一个php扩展项目,我想要php扩展中的 //PHP extension code:
PHP_METHOD(Car, __construct)
{
Car *car = NULL;
zval *object = getThis();
car = new Car();
car_object *obj = Z_PHP7OBJ_P(object);
obj->car = car;
zend_update_property_long(car_ce, getThis(), "speed", sizeof("speed")-1, obj->car->speed TSRMLS_CC);
}
PHP_METHOD(Car, accelerate)
{
Car *car;
car_object *obj =Z_PHP7OBJ_P(getThis());
car = obj->car;
if (car != NULL) {
car->accelerate();
}
}
PHP_METHOD(Car, getCurrentSpeed)
{
Car *car;
car_object *obj = Z_PHP7OBJ_P(getThis());
car = obj->car;
if (car != NULL) {
RETURN_LONG(car->getCurrentSpeed());
}
RETURN_NULL();
}
//php code:
$car = new Car();
echo $car->speed;//echo 0
echo $car->getCurrentSpeed();// echo 0
$car->accelerate();
echo $car->speed;//echo 0,但是我想要的是5
echo $car->getCurrentSpeed();// echo 5 我在想,是不是php扩展中有提供宏可以实现,又或者在扩展中重写_get和_set的魔术方法,但是都不知道怎样去实现 |
@imaben @pangudashu 我也这么认为,让大家可以讨论讨论分享经验,我也可以帮人解答我知道的问题 |
可以开个交流群吗? |
感谢pangudashu的精心制作,会坚持读下去的 |
readme中的交流群是微信的,怎么不用qq |
赞! |
1 similar comment
赞! |
有的底层c代码段建议标注上文件出处,因为某些部分讲解代码跳跃性太大,需要全文件夹搜索代码出处 |
是不是可以考虑忽略具体实现的代码,写成大家易于理解的代码,效果会好一些。就像《Redis设计与实现》中,大部分代码都是作者用python简写的,便于大家理解。 |
@CraryPrimitiveMan 有些部分确实罗列了太多的源码不太容易理解,后面会优化删除非关键的实现,保留最核心的部分。这个项目最初的定位是作为PHP内核的开发手册,而不是一本科普性质的书,所以会尽可能全、细的介绍,希望让更多的人可以具备PHP内核的开发能力,而不仅仅是了解。 |
能搞一个gitbook之类的么,可以在线看,或者转化为pdf |
@medmin 现在的文档是markdown的格式,可以git clone下来,转换成html,自己本机部署成web项目进行查看 |
再回来看发现作者都要出书了啊,恭喜大佬了 |
盘古大叔,可否增加gdb调试发现php故障章节,如服务卡死,如何使用pstack strace gdb php7/.initgdb等信息 |
第三章opcache有两节内容什么时候放出来呢 |
能搞一个gitbook之类的么,可以在线看,或者转化为pdf |
环境 php 7.2 ,有没有同学告知下为何是 2 3 4 <?php
$a = [];
xdebug_debug_zval('a'); // refcount=2
$b = $a;
xdebug_debug_zval('a'); // refcount=3
$c = $a;
xdebug_debug_zval('a'); // refcount=4 另外,作者这本书有错误的地方,引用计数部分沿用了 php 5 的,其实 php 7 有改动:
php 7 中基本类型不会增加引用数。鸟哥这篇文章才是正确的:深入理解PHP7内核之 Reference |
@Littlesqx 引用计数是在第2章介绍的,第5章的主题不是引用计数,你贴的那段在那里只是泛指好吗。另外你贴的鸟哥这篇文章是关于“引用(reference)”的,而不是“引用计数(refcount)” |
@pangudashu 嗯,我仔细看了下,是我的问题,抱歉。
这里已经说的很清楚了。 |
大佬写的非常精辟。但是能不能给文件加上目录号码。。这样查的时候也方便。。 |
一个腾讯课堂上在线收费培训机构分发的公开课教材是这本书的内容,大叔应该跟这家没关系吧?😮感觉他们的讲师水平写不了这个 |
大叔,写这个的时候是以php7.几为基础写的? |
@wistonehorse 7.0.28 |
我是来催更的~求协程那章 |
@huanghantao 收到。感谢🙏 |
No description provided.
The text was updated successfully, but these errors were encountered: