Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php-如何为此代码生成数组_Php - Fatal编程技术网

Php-如何为此代码生成数组

Php-如何为此代码生成数组,php,Php,我想对我的文件进行验证。例如,我的文件是header.php、footer.php、sidebar.php、info.php等,所以如果这些文件中有一些丢失了,就会显示错误 $required = 'header.php'; if (!file_exists($required)) { die('Please upload files properly'); } 如何在简单代码中验证所有文件?使用您已有的代码,您可以使用PHP优秀的foreach语句: $files = array("he

我想对我的文件进行验证。例如,我的文件是header.php、footer.php、sidebar.php、info.php等,所以如果这些文件中有一些丢失了,就会显示错误

$required = 'header.php';
if (!file_exists($required)) {
  die('Please upload files properly');
}

如何在简单代码中验证所有文件?

使用您已有的代码,您可以使用PHP优秀的foreach语句:

$files = array("header.php", "footer.php", "sidebar.php");
foreach($files as $required){
  if (!file_exists($required)) {
    die('Please upload files properly');
  }
}
$required = array("header.php", "footer.php", "sidebar.php", "info.php");
foreach($required as $req) {
    if(file_exists($req)) continue;
    die("Please upload files properly.");
}
话虽如此,这听起来像是require和require_once关键字的例子:

require "header.php";        /* Will puke if header.php is missing. */

使用已有的代码,您可以使用PHP优秀的foreach语句:

$required = array("header.php", "footer.php", "sidebar.php", "info.php");
foreach($required as $req) {
    if(file_exists($req)) continue;
    die("Please upload files properly.");
}
话虽如此,这听起来像是require和require_once关键字的例子:

require "header.php";        /* Will puke if header.php is missing. */
只需使用foreach迭代数组:

$required = array('header.php', 'footer.php', 'sidebar.php', 'info.php');
foreach ($required as $required) {
    if (!file_exists($required)) {
        die('Please upload files properly');
    }
}
编辑我对数组项使用了与数组本身相同的变量,这不是一个错误。使用阵列的内部副本,而不是阵列本身:

注意:除非引用数组,否则foreach操作指定数组的副本,而不是数组本身。foreach对数组指针有一些副作用。在foreach期间或之后,如果不重置数组指针,请不要依赖它

虽然$required中的原始数组在第一次迭代时被覆盖,但内部数组保持最初传递给foreach的状态。这可能不是最佳实践,因为不知道时会有点混乱。但它绝对有效。

只需使用foreach来迭代数组:

$required = array('header.php', 'footer.php', 'sidebar.php', 'info.php');
foreach ($required as $required) {
    if (!file_exists($required)) {
        die('Please upload files properly');
    }
}
编辑我对数组项使用了与数组本身相同的变量,这不是一个错误。使用阵列的内部副本,而不是阵列本身:

注意:除非引用数组,否则foreach操作指定数组的副本,而不是数组本身。foreach对数组指针有一些副作用。在foreach期间或之后,如果不重置数组指针,请不要依赖它


虽然$required中的原始数组在第一次迭代时被覆盖,但内部数组保持最初传递给foreach的状态。这可能不是最佳实践,因为不知道时会有点混乱。但是它是绝对有效的。

对您自己的应用程序进行验证真的有意义吗?无论如何,如果您真的想这样做:

构造所有文件的数组。 用于迭代数组中的所有文件。 对循环中的每个文件运行检查。
您自己的应用程序的验证真的有意义吗?无论如何,如果您真的想这样做:

构造所有文件的数组。 用于迭代数组中的所有文件。 对循环中的每个文件运行检查。
您希望使用$required以外的其他变量作为目标变量;第一次运行后,您将使用核弹攻击阵列。你愿意吗?天啊,我希望如此。我怀疑你会在第一次迭代后用核武器攻击它,当它得到下一个时,它要么是一个炸弹,因为以前的数组现在是一个字符串,b尽职尽责地期望下一个元素不在那里,因为字符串是一个单项目数组,或者c继续,就好像什么都没有发生一样,通过将第一个$required复制到foreach使用的某个隐藏变量中来避开源代码。我真的,真的希望是A或B,但你可能是对的,C发生了。@Jed Smith是对的。正如最初编写的那样,循环的第一次迭代会覆盖数组,从而破坏它。我修复了它。@Jed Smith:答案D:foreach使用数组的内部副本。更改原始阵列不会影响内部阵列。您甚至可以在每次迭代时将数组扩展为$item{$array[]=$item;},就像foreach$array一样。@ceejayoz:您不必纠正我。我打算对数组项使用与原始数组本身相同的变量。这可能有点令人困惑。但这并没有错,您希望使用$required以外的其他变量作为目标变量;第一次运行后,您将使用核弹攻击阵列。你愿意吗?天啊,我希望如此。我怀疑你会在第一次迭代后用核武器攻击它,当它得到下一个时,它要么是一个炸弹,因为以前的数组现在是一个字符串,b尽职尽责地期望下一个元素不在那里,因为字符串是一个单项目数组,或者c继续,就好像什么都没有发生一样,通过将第一个$required复制到foreach使用的某个隐藏变量中来避开源代码。我真的,真的希望是A或B,但你可能是对的,C发生了。@Jed Smith是对的。正如最初编写的那样,循环的第一次迭代会覆盖数组,从而破坏它。我修复了它。@Jed Smith:答案D:foreach使用数组的内部副本。更改原始阵列不会影响内部阵列。您甚至可以在每次迭代时将数组扩展为$item{$array[]=$item;},就像foreach$array一样。@ceejayoz:您不必纠正我。我打算对数组项使用与原始数组本身相同的变量。这可能有点令人困惑。但这并没有错。谢谢mate提供的代码和信息,谢谢mate提供的代码和信息