これは一般的なエラーで、私はすべての答えを読みましたが、少なくともPHPの初心者のように私のケースは異なって見えるので、 。警告:空の値からデフォルトオブジェクトを作成する - PHP関数
私が働いてPHPのコードを持っていますが、私は以下のコードのように、適切な機能でそれを手配しようとしていますが、私はエラーWarning: Creating default object from empty value in /home/abc/vhosts/localhost/public/portfolio.php on line 16
次取得:私が考えるすべての答えとドキュメントを読んだ後
<?php
// configuration
require("../includes/config.php");
// prepare portfolio object
$portfolioObject = (object) ["portfolioSummaryArr" => [], "cashInHand" => ""];
function getCashInHand(){
// query database to get cash in hand
$rows = CS50::query("SELECT cash FROM users WHERE username = ?", $_SESSION["username"]);
// get first (and only) row
$row = $rows[0];
$portfolioObject->cashInHand = $row["cash"];
$portfolioObject->portfolioSummaryArr = [11, 22, 33, 44, 55];
}
getCashInHand();
?>
を私はこれをした後、私はこのエラーParse error: syntax error, unexpected '$myObject' (T_VARIABLE) in /home/abc/vhosts/localhost/public/portfolio.php on line 12
を取得するオブジェクトのいくつかの並べ替えが必要です。私はこれを信じていますが、JSで同様のことが許可されていて動作しますが、PHPで推測されていないのは、このように作成したオブジェクトを使用すると、
$myObject = new stdClass();
$myObject->demoFunction = function(){
echo "I am coming from demo function.";
}
$myObject->demoFunction();
私に物事は、私はちょうどrequire("../includes/config.php");
後に私のコードで以下のように行うならば、それが動作するため、より面白くないとエラーが、私の最初のコードスニペットに示すように、関数の定義とアクセスは動作しません。
// Defining function
function whatIsToday(){
echo "Today is XXX";
}
// Calling function
whatIsToday();
短い答えは可変範囲です。 –
@Dagonヒントをありがとう。グローバルオブジェクトである '$ myObject = new stdClass();'を作成し、 'portfolioObject'を' $ myObject-> portfolioObject =(object)["portfolioSummaryArr" => []、 "cashInHand" => ""] ; '$ myObject-> portfolioObject-> cashInHand = $ row [" cash "];'としてアクセスしますが、それと同じエラーです。私はグローバルな 'myObject'オブジェクトを通して' portfolioObject'にアクセスできましたか? – hagrawal
レビュー[この回答](http://stackoverflow.com/questions/2938004/how-to-add-a-new-method-to-a-php-object-on-the-fly)あなたのメソッドを呼び出します。しかし、 '予期しない$ myobject'は、関数定義の後に'; 'がないためです。通常の関数defでは、 '}'の後に ';'を終端しませんが、あなたのものは無名関数の変数代入です。 $ myObject-> demoFunction = function(){...}; '<--- –