我有一个叫做$worker
数组的数组,只包含字符串,每个字符串都有多行.
如果我做
var_dump($worker);
Run Code Online (Sandbox Code Playgroud)
它显示所有信息,但确实如此
for($i=0,$size=sizeof($worker);$i<$size;++$i)
{
echo $worker[i];
}
Run Code Online (Sandbox Code Playgroud)
我最终在页面上没有任何内容.
我是php的新手,很抱歉,如果这是一个菜鸟问题:我如何获取阵列中的信息才能正确打印到屏幕上?
我正在编写一个卷曲另一个站点的脚本,然后解析结果.我似乎有一些奇怪的问题,我无法理解他们来自哪里; 我已经包含了我的代码中有问题的部分以及从下面返回的输出:
<?php
//my code to do some logic and build the curl
$BookingConfirmation = curl_exec($ch);
$testString = 'a test';
var_dump($testString);
echo '<br />';
echo $BookingConfirmation;
echo '<br />';
var_dump($BookingConfirmation);
echo '<br />';
$bookingResults = explode('|', $BookingConfirmation);
var_dump($bookingResults);
die();
?>
Run Code Online (Sandbox Code Playgroud)
当我然后加载页面,我得到这个输出:
string(6) "a test"
booking|1||4000015|23628
string(2386) " booking|1||4000015|23628 "
array(6) {
[0]=> string(766) " string(1526) "108^1"> booking"
[2]=> string(1) "1"
[3]=> string(0) ""
[4]=> string(7) "4000015"
[5]=> string(81) "23628 "
}
Run Code Online (Sandbox Code Playgroud)
所以根据$ BookingConfirmation向我展示的内容,我不希望数组在其中的任何地方包含"108 ^ 1".另外,为什么$ BookingConfirmation的var_dump会显示它是一个2386字符的字符串?它远没有那么久.另一个问题是,应该在数组中的第二个元素发生了什么?($ bookingResults [1])该数组的最终转储显示有6个元素,但跳过#1时,只显示了5个元素.
注意这些变量名称都不会在代码中的任何其他位置使用也可能很有用.
任何想法将不胜感激.
我看到php.net的手册,看到几个例子,当使用var_dump和其他命令查看示例时.
所有示例都按照预先样式排序.
但在我自己的服务器上,我只在一行上看到相同的例子
var_dump($a);
Run Code Online (Sandbox Code Playgroud)
在手动上看 - >
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
Run Code Online (Sandbox Code Playgroud)
在我的服务器上,我看到:
array(3) {[0]=>int(1) [1]=>int(2) [2]=>array(3) {[0]=>string(1) "a" [1]=>string(1) "b" [2]=>string(1) "c"}}
Run Code Online (Sandbox Code Playgroud)
我认为这是一个运行时选项,我可以改变,但我不确定.那么如何以与手册中相同的格式获得输出?
为什么我dump()在使用它之前只能到达我的日期对象?
这是我的功能:
public function checkSubscriptionEndDate($user){
$subscriptionEndDate = $user->getSubscriptionEndDate();
dump($subscriptionEndDate);
if($subscriptionEndDate==null){
$subscriptionEndDateMessage = $this->get('translator')->trans('subscriptionEndDateMessage');
$subscriptionStatus = "error";
}else{
$subscriptionEndDateDate = $subscriptionEndDate->date;
// CHECK IF SUBSCRIPTION END DATE IS BEFORE NOW
if (date('now') < $subscriptionEndDateDate) {
dump('before');
$subscriptionStatus = "success";
$subscriptionEndDateMessage = $this->get('translator')->trans('subscriptionStatusSuccess').' '.date('d/m/Y',strtotime($subscriptionEndDateDate));
}else{
dump('after');
$subscriptionStatus = "error";
$subscriptionEndDateMessage = $this->get('translator')->trans('subscriptionStatusError').' '.date('d/m/Y',strtotime($subscriptionEndDateDate));
}
}
return array(
'subscriptionEndDateMessage' => $subscriptionEndDateMessage,
'subscriptionStatus' => $subscriptionStatus
);
return $subscriptionEndDateMessage;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,页面按预期加载,没有问题.但如果我删除这一行:
dump($subscriptionEndDate);
我无法再加载$subscriptionEndDate->date此错误页面中所示:
我在windows上使用xampp 1.7.3时遇到了var_dump.i'm的问题.
我认为在以前的版本中我可以输出var_dump的变量而print "<pre>" print "</pre>" firebug不是没有installed on my firefox,我没有使用xdebug.
在形式上,我甚至有红色和格式良好的输出.现在它完全不可读.可以给我一个如何纠正的提示.并且我在php_info.thanks中看到的html_errors用于阅读此内容.
上次我正在探索PHP,我很好奇是否有可能定义变量而不像C++那样初始化它.
如果我将运行此代码,那么解释器不会输出致命的错误(只有通知变量测试未定义):
<?php
$test = (int) $test;
?>
Run Code Online (Sandbox Code Playgroud)
如果我尝试用var_dump()函数检查它,我得到:
int(0)
Run Code Online (Sandbox Code Playgroud)
我假设解释器自动将undefined转换为整数.嗯,好吧,这很聪明.但当我删除代码类型转换代码并使用var_dump()函数检查它时,我得到:
NULL
Run Code Online (Sandbox Code Playgroud)
好吧,好的.因此,当我将未定义的变量指定为未定义的变量时,我得到NULL变量.我可以理解翻译在运行中为我做的.但是,当我尝试这样的事情时:
<?php
var_dump($test);
var_dump($test);
?>
Run Code Online (Sandbox Code Playgroud)
我得到两个通知,测试没有定义,但var_dump()返回NULL,而不是未定义.现在我不明白.如果我将关闭通知,var_dump()函数将与未定义的变量和分配给NULL的变量具有相同的结果.这是一个来自主题的问题.为什么解释器(或者更确切地说是var_dump()函数)将undefined和NULL视为相同?
我的代码:
$json_data = file_get_contents($json_url,0,null,null);
$json_output = json_decode($json_data);
var_dump($json_output);
Run Code Online (Sandbox Code Playgroud)
这就是var_dump在一个大行中吐出的内容,而不是格式化:
object(stdClass)#1 (1) { ["timetableresult"]=> object(stdClass)#2 (1) { ["ttitem"]=> array(17) { [0]=> object(stdClass)#3 (1) { ["segment"]=> array(8) { [0]=> object(stdClass)#4 (3) { ["segmentid"]=> object(stdClass)#5 (2) { ["mot"]=> object(stdClass)#6 (3) { ["@displaytype"]=> string(1) "G" ["@type"]=> string(1) "G" ["#text"]=> string(5) "GÃ¥ng" } ["distance"]=> int(1008) } ["departure"]=> object(stdClass)#7 (2)... etc.etc.
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
upload.php的
var_dump()函数返回零数组.我在这做错了什么?
<form method="post" action="upload.php">
<input type="file" name ="file" id="file"><input type="submit" value="upload">
</form>
<?php
if(isset($_POST['file']))
{
var_dump($_FILES);
}
?>
Run Code Online (Sandbox Code Playgroud) 希望复制一个简单的(假设它不是我的设置...)
我在PHP脚本中有以下内容:
echo('$userID: ' . var_dump($userID) . '<br>');
echo('$hashValidate: ' . var_dump($hashValidate) . '<br>');
Run Code Online (Sandbox Code Playgroud)
输出显示为:
bool(false)$ userID:
bool(false)$ hashValidate:
不应该这样吗?
$ userID:bool(false)
$ hashValidate:bool(false)
$myarray = array("search1", "search2");
if(var_dump($myarray) == array){
//do something
}
Run Code Online (Sandbox Code Playgroud)
我很好奇,如果这个if语句将永远返回真实