1

我有这个代码

<?php
$a1 = 'http://www.hamooz.com';
$a2 = 'http://www.myegy.com';
$a3 = 'http://www.tech-wd.com/wd';
$num = rand(1,3);

$numb =  '$a'.$num;

echo file_get_contents($numb);
?>

问题看起来像:

警告:file_get_contents($a3) [function.file-get-contents]:无法打开流:第 9 行的 C:\xampp\htdocs\ttt\bessah.php 中没有这样的文件或目录

4

3 回答 3

4

您需要这样做$numb = ${'a'.$num};,但使用数组解决方案作为@Pekka 的答案。

于 2012-10-29T09:03:58.443 回答
3

可变变量是一种不好的做法。请改用数组。

<?php

$a = array();
$a[] = 'http://www.hamooz.com';
$a[] = 'http://www.myegy.com';
$a[] = 'http://www.tech-wd.com/wd';
$num = rand(0,2);

$numb = $a[$num];

echo file_get_contents($numb);
?>

然而,对于这个特定的任务,还有一个捷径

array_rand ( )

从数组中选择一个或多个随机条目,并返回随机条目的键(或多个键)。

于 2012-10-29T09:00:58.677 回答
0

我同意@Pekka,你会让你的代码复杂化,但如果你绝对想使用动态变量,你可以这样做:

<?php
$a1="hello";
$b=1;
echo ${"a$b"};
?>
于 2012-10-29T09:10:01.533 回答