需要一次停止脚本
Posted
技术标签:
【中文标题】需要一次停止脚本【英文标题】:Require Once stops script 【发布时间】:2011-10-07 21:42:20 【问题描述】:我有一个包含内容的 php 脚本 test.php
<?php
require_once("classes/user.php");
echo "test";
?>
这里是user.php的内容
<?php
class User
private $data = array();
public function __set($name, $value)
$this->data[$name] = $value;
public function __get($name)
if (array_key_exists($name, $this->data))
return $this->data[$name];
$trace = debug_backtrace();
trigger_error(
'Undefined property via __get(): ' . $name .
' in ' . $trace[0]['file'] .
' on line ' . $trace[0]['line'],
E_USER_NOTICE);
return null;
public function __isset($name)
return isset($this->data[$name]);
public function __unset($name)
unset($this->data[$name]);
public __construct($param)
if(is_array($param)) $this->create($param);
else $this->id($param);
private id($id) //select from database
require_once('config.php');
$pdo = new PDOConfig();
$sql = "SELECT * FROM users WHERE `id` = :id";
$q = $pdo->prepare($sql);
$q->execute(array(":id"=>$id));
$resp = $q->fetchAll();
foreach ($resp as $row)
foreach ($row as $key=>$value)
if(!is_int($key))
$this->data[$key] = html_entity_decode($value, ENT_QUOTES);
$pdo = null;
unset($pdo);
private create($arr) //create new item from values in array and insert to db
public delete()
$this->life = 0;
//update database "life" here
/* ##################################### */
/* !Functions */
/* ##################################### */
public projects($extra = null)
$projects = array();
require_once('project.php');
$pdo = new PDOConfig();
$sql = "SELECT * FROM ---- WHERE `000` = :aaa";
if($extra) $sql .= " " . $extra;
$q = $pdo->prepare($sql);
$q->execute(array(":aaa"=>$this->id));
$resp = $q->fetchAll();
foreach ($resp as $row)
$project = new Project($row['id']);
$projects[] = $project;
$project = null;
unset($project);
return $projects;
?>
并且永远不会打印测试,并且在 chrome 上根本不会加载页面
网站在检索 http://example.com/test.php 时遇到错误。它可能因维护而停机或配置不正确。
我这辈子都想不通。感谢它提前
【问题讨论】:
尝试添加error_reporting(E_ALL);到脚本的顶部。您是否收到任何新的错误消息? 在 Chrome 中查看源代码。对于简短的错误消息,Chrome 会隐藏您的错误消息并显示其默认消息。烦人的“功能”。 @ceejayoz HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到意外情况。并且错误报告没有显示任何新内容。 【参考方案1】:__construct()
方法的声明中有语法错误:
public __construct($param)
if(is_array($param)) $this->create($param);
else $this->id($param);
你需要使用function
关键字,像这样:
public function __construct($param)
if(is_array($param)) $this->create($param);
else $this->id($param);
为了帮助找到这些错误,在您的开发计算机上,您应该启用:
error_reporting
和display_errors
事实上,我只是将你的代码复制粘贴到一个.php
文件并运行它——结果很好
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE
in /home/.../temp/temp.php on line 39
【讨论】:
你是神。这让我在周末的大部分时间里都很生气。我知道这很简单,现在我觉得自称是 php 开发人员是一种耻辱。 :) 继续努力。 下一次(好吧,实际上,一直都是,在开发时;-))启用错误报告;-) 欣赏它,并且会做到的。 :) 我无法进行错误报告,将 E_ALL 报告之类的内容放在页面顶部没有任何作用。以上是关于需要一次停止脚本的主要内容,如果未能解决你的问题,请参考以下文章