روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمدرضا رحیمی
نوشتن static property در double quotation
جامعه پی اچ پی ایجاد شده در ۰۴ آذر ۱۴۰۰
<p>سلام</p><p>من قصد دارم که api کلاس query builder رو کمی تغییر بدم، که به صورت زیر ازش استفاده کنم:</p><pre class=\"ql-syntax\" spellcheck=\"false\"><span class=\"hljs-variable\">$result </span>= PDOQueryBuilder::table(<span class=\"hljs-string\">\'users\'</span>)     ->where(<span class=\"hljs-string\">\'name\'</span>, <span class=\"hljs-string\">\'َAli\'</span>)     ->delete(); </pre><p>متد و پراپرتی table رو static تعریف کردم.</p><p>سوالم اینه که چرا هنگام نوشتن کوئری داخل double quotation خطای \"Undefined variable \'$table\'\" دریافت می‌کنم؟ یعنی:</p><pre class=\"ql-syntax\" spellcheck=\"false\"><span class=\"hljs-variable\">$sql</span> = <span class=\"hljs-string\">\"DELETE FROM {self::<span class=\"hljs-subst\">$table</span>} WHERE <span class=\"hljs-subst\">{$conditions}</span>\"</span>; <span class=\"hljs-comment\">// Error: Undefined variable `$table`</span> <span class=\"hljs-variable\">$sql </span>= <span class=\"hljs-string\">\"DELETE FROM \"</span> . <span class=\"hljs-built_in\">self</span>::<span class=\"hljs-variable\">$table </span>. <span class=\"hljs-string\">\" WHERE <span class=\"hljs-subst\">{$conditions}</span>\"</span>; <span class=\"hljs-comment\">// ✔</span> </pre><p>ولی concat میکنم مشکلی نداره!</p>

سلام محمد رضا

ثابت‌های کلاس رو اینطوری توی استرینگ نمی‌تونی استفاده کنی

اینجوری استفاده کن:

$sql = "DELETE FROM {${self::$table}} WHERE {$conditions}";        // Error: Undefined variable `$table`

اینجا رو هم می‌تونی بخونی .


بهترین پاسخ
لقمان آوند ۰۴ آذر ۱۴۰۰، ۰۹:۰۱