gpt4 book ai didi

PHP 跳过函数调用输出

转载 作者:行者123 更新时间:2023-11-29 18:27:24 26 4
gpt4 key购买 nike

我遇到以下问题

require('drawchart.php');

if ( file_exists('drawchart.php')){ cwrapper();}

使用 cwrapper 中的“chart.png”命令;

cwrapper 是drawchart.php 中的一个函数,用于访问MySQL 并绘制图表。这个函数本身和 test.php 中都工作得很好,但它停止在我的主程序中生成图表,我很困惑为什么它在那里不起作用。

我尝试引入一个 sleep(30) 来看看它是否需要等待文件写入才能成功。但这也无济于事。接下来的第二个命令永远不会获取输出文件chart.png。在这两种情况下,目录都是绝对路径,因此这不是问题。

它确实在那里获取了一个现有的chart.png,但不是应该从if调用生成的更新的chart.png。它似乎跳过了对 cwrapper 的调用。

cwrapper 使用 pchart 来绘制图表,并且它在测试脚本中完美地完成了这一任务。

如何解决这个问题?有没有更好的方法来实现这一目标?

最佳答案

首先,确保cwrapper()函数调用。

因为你没有提供drawchart.php的路径,如果当前目录下不存在,require()include_path中指定的路径中搜索它在 php.ini 中(可以在运行时更改)。

file_exist()就没那么幸运了,只有当前目录中存在该文件,它才能找到该文件。

处理这种情况的最好方法是不检查文件是否存在(谁关心它?让 require() 处理它),而是检查你要调用的函数是否存在:

require 'drawchart.php';

if (function_exists('cwrapper')) {
cwrapper();
}

事实上,因为如果文件无法加载,require 就会终止脚本,所以您甚至不需要检查该函数是否存在。如果它在所需文件中定义,则它在 require() 语句返回后存在(否则脚本将中止)。

您的代码应该简单如下:

require 'drawchart.php';

cwrapper();

关于PHP 跳过函数调用输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46051170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com