我不知道为什么,但xdebug没有突出显示var_dump()。但配置似乎没问题。不知道为什么......有什么建议吗?
这是我的phpinfo(); http://pastebin.com/A45dqnWN
加上甚至xdebug_var_dump()都不会突出显示任何内容。它可以工作,但看起来像普通的var_dump()。
答案 0 :(得分:18)
我在php_info()中找到了“xdebug.default_enable Off Off”选项。我也注意到在EasyPHP的最新版本中,此选项已关闭。所以通过在php.ini中设置这一行来打开它:
xdebug.default_enable=1
接下来只是常见的操作,它完全禁用了HTML输出中的var_dump和其他错误(不是你的情况,但可能对其他人有帮助):
html_errors = On
答案 1 :(得分:6)
对于 Xdebug 3,您需要在 php.ini 中启用开发模式:
class App extends React.Component {
state = {
ip: ''
};
inputRef = React.createRef()
componentDidMount(){
document.addEventListener("keyup", this.keyboardUp);
}
componentWillUnmount() {
document.removeEventListener("keyup", this.keyboardUp);
}
keyboardUp = (e) => {
if (e.key === 'Enter' || e.keyCode === 13) {
e.preventDefault()
console.log(e.key)
this.setState(prev => ({ ip: prev.ip + ' ' }));
}else{
this.setState(prev => ({ ip: prev.ip + e.key }));
}
}
enterHandler = () => {
this.setState(prev => ({ ip: prev.ip + '\n' }));
this.inputRef.current.focus();
}
render() {
return(
<div>
<textarea
ref={this.inputRef}
placeholder='Enter here'
value={this.state.ip}
/>
<button onClick={this.enterHandler}>Enter</button>
</div>
)
}
}
ReactDOM.render(<App />, document.getElementById("react"));
您也可以按照 here 的说明一次使用多种模式。
答案 2 :(得分:3)
正如@Shadoweb 在 Xdebug v3 中提到的,您希望 debug
允许在断点处停止,并 develop
格式化 var_dump
因此,您可能需要在 php.ini 中包含以下内容:
xdebug.mode=develop,debug
顺便说一句,我还需要 xdebug.start_with_request=yes
来替换重命名的 xdebug.xdebug.remote_enable=1
设置,以便在我的 IDE 中进行分步调试。
答案 3 :(得分:0)
对于php 7.0.2和xdebug 2.4.0
xdebug.default_enable=1
+
html_errors = On
仍然没有着色xdebug_var_dump()输出。
但是这个补丁修复了我的问题。它仅适用于xdebug.c和xdebug_var_dump()。我认为他们犯了一个错误,xdebug_var_dump只有在需要重载函数时才能工作。
@@ -2191,11 +2191,6 @@
int i, len;
char *val;
- if (!XG(overload_var_dump)) {
- XG(orig_var_dump_func)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
- return;
- }
-
argc = ZEND_NUM_ARGS();
#if PHP_VERSION_ID >= 70000
答案 4 :(得分:0)
在php.ini中关闭xdebug.mode = debug,例如
; xdebug.mode = debug
然后重新启动Apache。