站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress:I Make Changes and Nothing Happens
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==调试PHP== If you have access to your webserver's error log, take time to check it. PHP usually logs informative errors here when things go wrong. These log messages can sometimes be a little cryptic, but they should always give the line number of the offending piece of code. 如果你有权限进入你的网络服务器的误差记录,花一点时间查看一下。当什么东西出错了的时候,PHP通常会在这儿记录错误的信息。这些记录的信息有时候有一点模糊,但是它们应该总是给出违规的代码的行数。 Unfortunately, what PHP thinks is the offending piece of code is sometimes not the problem. For example, an unclosed curly brace <tt>{</tt> may be reported as a problem on some line number way on down in your script. A quick cheat sheet of PHP error messages and their common causes can be found at [[WordPress:User:Skippy/Common_PHP_Errors|Common PHP Errors]]. 不幸地是,PHP认为的违规的代码有时并不是一个问题。例如,没有关闭的花括号<tt>{</tt>在你的脚本某行中可能被报导为一个错误。在[[WordPress:User:Skippy/Common_PHP_Errors|常见的 PHP错误]]中可以找到一些PHP错误信息的快捷作弊表。 To debug your PHP, here are the steps you should follow: 调试你的PHP,下面是一些你需要遵循的步骤: ===See Where You Are=== ===看看你出的位置=== The <tt>die()</tt> command is probably the single most useful debugging tool available. <tt>die()</tt> immediately halts execution of the program, optionally displaying a message of your choosing. <tt>die()</tt>命令行可能是唯一最有用的调试工具。<tt>die()</tt>立马地停止程序的执行,随意地显示一个你选择的信息。 When trying to work through problems, sprinkle <tt>die()</tt> statements in at key sections of your script, giving each an informative message:<br /> 当试着解决这些问题的时候,在你的脚本的一个关键的部分,散步<tt>die()</tt>声明,给每个一个翔实的信息:<br /> <pre>die('Stage One Complete'); die('Disinfribullation Complete'); die('Finished Collating');</pre> <pre>die('Stage One Complete'); die('Disinfribullation Complete'); die('Finished Collating');</pre> Load your program, and see which message (if any) gets displayed. If you see the first message, you know your program got that far without error. You can safely remove (or comment out) that <tt>die()</tt> command, and re-run your program, to see how much farther it got. Step through your program this way until you've isolated the problem area. 载入你的程序,看看那个信息(如果存在的话)显示了。如果你看到了第一个信息,你知道你的程序运行到那里也没有一个错误。你可以安全地移除(或者评论除去)那个<tt>die()</tt>命令行,并且重新地运行你的程序,看看它运行到了哪里。以这种方式来处理你的程序,直到你隔离了问题区。 This technique has some limitations, though. First, if <strong>nothing</strong> is being displayed in your browser, then most likely you have a fatal syntax error somewhere in your script. Check your webserver's error log, if possible. If the script executes completely -- but incorrectly -- and none of your <tt>die()</tt> messages are displayed, then you've got some more work to do. 但是这个方法也有一些限制。首先,如果你的浏览器上<strong>什么也没有</strong>显示,你的脚本的某处可能有重大的语法错误。如果可以的话,查看你的网络服务器的错误记录。如果脚本完全地执行了—但是错误地—而且你的<tt>die()</tt>消息什么也没有显示,那么你就需要做更多的事。 ===See What's What=== ===看看什么是什么=== If things aren't being set as you want them, or stuff isn't happening when you want, you'll likely need to check the value of different variables at different places of your script. Simply pass the variable to a <tt>die()</tt> command, and you'll be able to see what that variable's value is:<br /> :<tt>die($user_level);</tt> 如果事情不是按你所想的设置的,而且当你想要原料是也没有,你可能要在你的脚本的不同位置上查看不同的变量的值。只要将变量传到一个<tt>die()</tt>命令行,你就能看到那个变量的数值:<br /> :<tt>die($user_level);</tt> This will display the value of the variable $user_level, which should reveal the current user's user level. 这样会显示不同的$user_level的值,可以显示目前用户的级别。 This technique is fine for some variable types, like boolean and string ("[http://www.php.net/manual/en/language.types.php#language.types.intro scalar]") variables in programmer parlance; but fails for [http://www.php.net/manual/en/language.types.array.php arrays] and [http://www.php.net/manual/en/language.types.object.php objects]. To see the value(s) of arrays and objects, use the [http://www.php.net/print_r print_r] command:<br /> 对于一些变数类型,像boolean和string,这个方法较好("[http://www.php.net/manual/en/language.types.php#language.types.intro scalar]")一个程序员用法中的变数;但是对[http://www.php.net/manual/en/language.types.array.php arrays] 和[http://www.php.net/manual/en/language.types.object.php objects]不管用。看看数组和对象的值,使用[http://www.php.net/print_r print_r] command:<br /> :<tt>print_r($post);</tt> :<tt>print_r($post);</tt> It will display the value of the $post array in a human-readable format: 它会以人们易读的方式显示$post数组的值: <pre>Array ( [0] => stdClass Object ( [ID] => 1 [post_author] => 1 [post_date] => 2005-02-16 09:16:46 [post_date_gmt] => 2005-02-16 14:16:46 [post_content] => Welcome to WordPress. This is your first post. Edit or delete it, then start blogging! [post_title] => Hello world! [post_category] => 0 [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => hello-world [to_ping] => [pinged] => [post_modified] => 2005-04-15 08:45:42 [post_modified_gmt] => 2005-04-15 13:45:42 [post_content_filtered] => [post_parent] => 0 [guid] => /?p=1 [menu_order] => 0 ) )</pre> <pre>Array ( [0] => stdClass Object ( [ID] => 1 [文章作者] => 1 [post_date] => 2005-02-16 09:16:46 [post_date_gmt] => 2005-02-16 14:16:46 [post_content] => Welcome to WordPress. This is your first post. Edit or delete it, then start blogging! [post_title] => Hello world! [post_category] => 0 [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => hello-world [to_ping] => [pinged] => [post_modified] => 2005-04-15 08:45:42 [post_modified_gmt] => 2005-04-15 13:45:42 [post_content_filtered] => [post_parent] => 0 [guid] => /?p=1 [menu_order] => 0 ) )</pre> This format allows you to see what each key/value pair is inside the array. 这个格式可以让你看看数组中的每个关键/值对。 Using <tt>print_r()</tt> does not stop execution of the program, so it is often necessary to call <tt>die()</tt> immediately afterwards. 使用<tt>print_r()</tt>不会阻止程序的运行,因此随后立马访问<tt>die()</tt>通常是有必要的。 Use <tt>print_r()</tt> and <tt>die()</tt> to check the values of your variables through the execution of your script. There's also a <tt>var_dump()</tt> function which works similarly. Use whichever mechanism you find most informative. 通过执行脚本,使用<tt>print_r()</tt> 和<tt>die()</tt>来检查你的变量的值。有一个<tt>var_dump()</tt>功能,它的运行也相似。使用你找到的任何最翔实的机制。
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)