PHP扩展来修改默认行为

时间:2013-11-13 15:04:20

标签: php c php-extension

我尝试过什么

我已经阅读了以下PHP扩展教程:http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/ http://php.webtutor.pl/en/2011/07/07/how-to-create-php-extensions-in-c-part-i-adding-simple-function/所有这些都是添加新功能的绝佳资源。

我创建了一些添加简单功能的简单扩展。主要是hello_world()类型扩展。我曾尝试浏览源代码和所有内容,但我似乎无法找到我需要的东西。

我需要什么

我需要帮助或正确方向指出如何更改php功能。我正在尝试扩展foreach的语法。这更像是一个学习机会,我认为更改foreach的语法是一个好主意。

1)如何在当前的PHP源代码中找到foreach的当前实现? 2)如何编写和扩展来更改它?

最终目标

每次我编写一个数组,我想要一组唯一的数字而不是将数字放在值中并进行数组搜索时,我将它们放在键中并将值设置为true。当我做foreach时我不关心钥匙。所以我想创建以下语法:

foreach ($myArray as $key => ) {
    // Do stuff here    
}

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

您无法使用扩展程序更改PHP的核心行为。如果要更改foreach循环,则需要更改PHP的核心组件并重新编译它。由您来决定您需要改变的内容。 (那很有趣)

但是你可能只是这样做:

foreach (array_keys($myArray) as $key) {
    // Do stuff here    
}